Junior
159
questionbank
В чём отличие связи один к одному от связи многие ко многим?
Answer from AI
sobes.tech AI
Связь один к одному (One-to-One) означает, что одна запись в одной таблице может быть связана максимум с одной записью в другой таблице, и наоборот. Часто реализуется через внешний ключ с уникальным индексом.
Связь многие ко многим (Many-to-Many) означает, что одна запись в одной таблице может быть связана со многими записями в другой таблице, и наоборот. Для реализации такой связи требуется дополнительная таблица (связующая, или промежуточная), которая содержит внешние ключи на обе связанные таблицы.
Примеры:
- One-to-One: Человек и его паспорт. У одного человека может быть только один паспорт, и один паспорт принадлежит только одному человеку.
- Many-to-Many: Студенты и курсы. Один студент может посещать много курсов, и на одном курсе может обучаться много студентов.
Реализация в базе данных:
| Тип связи | Реализация | Структура |
|---|---|---|
| One-to-One | Внешний ключ с уникальным индексом. | TableA (PK), TableB (PK, FK to TableA) |
| Many-to-Many | Промежуточная таблица (join table). | TableA (PK), TableB (PK), JoinTable (FK to TableA, FK to TableB) |