Junior — Middle
Ինչպես իրականացնել շատ-միայն հարաբերություն տվյալների բազայում?
sobes.tech AI
Պատասխան AI-ից
Բազմիցս-մեկ հարաբերությունը տվյալների բազայում իրականացվում է միջնորդական աղյուսակի (կապող աղյուսակի) միջոցով, որը պարունակում է արտաքին բանալիներ երկու կապակցվող աղյուսակների վրա:
Օրինակ, երկու էություն կա՝ օգտագործողներ և `դերը։ Մի օգտվող կարող է ունենալ մի քանի դերը, և մի դերը կարող է պատկանում մի քանի օգտվողների:
Աղյուսակների կառուցվածքը՝
օգտագործողներ(id, անուն, ...)դերը(id, դերի_անուն, ...)օգտագործող_դեր(օգտագործող_id, դերը_id) — միջնորդական աղյուսակ, որտեղօգտագործող_idևդերը_idարտաքին բանալիներ են:
Go-ում ORM-ի հետ աշխատելիս (օրինակ, GORM), դա կարելի է նկարագրել այսպես՝
type Օգտագործող struct {
ID uint
Անուն string
Դերերը []Դեր `gorm:"many2many:օգտագործող_դեր;"`
}
type Դեր struct {
ID uint
Անուն string
}
Այսպիսով, ORM-ը կառավարում է հարաբերությունը օգտագործող_դեր աղյուսակի միջոցով:
Եթե ORM չեք օգտագործում, ապա պետք է ձեռքով գրել SQL հարցումներ՝ JOIN-ով միջնորդական աղյուսակի վրա: