Back to questions
МТС Digital
Junior — Middle
78
Каким образом реализовать отношение многие-ко-многим в базе данных?
Companies where asked
Answer from AI
sobes.tech AI
Отношение многие-ко-многим в базе данных реализуется через промежуточную таблицу (join table), которая содержит внешние ключи на обе связанные таблицы.
Например, есть две сущности: users и roles. Один пользователь может иметь несколько ролей, и одна роль может принадлежать нескольким пользователям.
Структура таблиц:
users(id, name, ...)roles(id, role_name, ...)user_roles(user_id, role_id) — промежуточная таблица, гдеuser_idиrole_id— внешние ключи.
В Go при работе с ORM (например, GORM) можно описать это так:
type User struct {
ID uint
Name string
Roles []Role `gorm:"many2many:user_roles;"`
}
type Role struct {
ID uint
Name string
}
Таким образом, ORM сам управляет связью через таблицу user_roles.
Если без ORM, то нужно вручную писать SQL-запросы с JOIN по промежуточной таблице.