GoDasturchi
Relationships: Has Many

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

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