Ответ
-
Один к одному (1:1) - Каждая запись в таблице A связана с одной записью в таблице B.
Пример: Пользователь и его паспортные данные. -
Один ко многим (1:N) - Одна запись в таблице A может быть связана с несколькими записями в таблице B.
Пример: Автор и его книги. -
Многие ко многим (M:N) - Записи в таблице A могут быть связаны с несколькими записями в таблице B и наоборот.
Реализуется через промежуточную таблицу.
Пример: Студенты и курсы (связь через таблицуstudent_courses). -
Самореферентная связь - Таблица ссылается на саму себя.
Пример: Сотрудники и их менеджеры (в той же таблицеemployees).
// Пример связи M:N в Go (GORM)
type Student struct {
ID uint
Courses []Course `gorm:"many2many:student_courses;"`
}
type Course struct {
ID uint
Students []Student `gorm:"many2many:student_courses;"`
}