Relationships: Has Many
Bog'lanishlar: "ko'plab ega" (Has Many)
"Has Many" — "Belongs To"ning tескари tomoni: bitta User bir nechta Orderga ega bo'lishi mumkin. Bu ko'rinishda bog'lanish []Order slice maydoni orqali ifodalanadi.
example.go
type User struct {
ID uint
Name string
Orders []Order // bitta User — bir nechta Order'ga ega
}
type Order struct {
ID uint
Item string
UserID uint
}
func main() {
// ...
user := User{Name: "Aziz"}
db.Create(&user)
db.Create(&Order{Item: "Sichqoncha", UserID: user.ID})
db.Create(&Order{Item: "Klaviatura", UserID: user.ID})
// user.Orders hali ham bo'sh — Preload kerak (keyingi darsda)
}"Belongs To" va "Has Many" — aslida bir xil ma'lumotlar bazasi tuzilishining ikki tomoni: Order jadvalidagi UserID ustuni ikkalasi uchun ham asos bo'ladi. Farqi — qaysi struct'dan qaysi tomonga qarayotganingizda: Order.User ("bu buyurtma kimga tegishli?") — Belongs To; User.Orders ("bu foydalanuvchining qanday buyurtmalari bor?") — Has Many.
Key Takeaway
Key Takeaway:
"Has Many" — slice maydon orqali ifodalanadi va "Belongs To"ning teskari tomoni; ikkalasi ham bitta chet kalit ustunga asoslanadi.
NEXT UP
Preloading Relations