Зміст курсу
Реляційні Бази Даних та Нормалізація
Реляційні Бази Даних та Нормалізація
Один-до-Одного та Багато-до-Багатьох
Один до одного
Зв'язок "один-до-одного" - це тип зв'язку, в якому кожному запису в одній таблиці відповідає запис в іншій таблиці. Це комбінація двох зв'язків:
- Перша таблиця має зовнішній ключ, який посилається на первинний ключ другої таблиці.
- Друга таблиця має зовнішній ключ, який посилається на первинний ключ першої таблиці.
Примітка
Зв'язок один до одного базується на зовнішньому ключі. Зовнішній ключ повинен мати параметр "unique=True".
Існують ситуації, коли один запис може існувати лише за наявності іншого, але цей інший може бути незалежним. Такий зв'язок називається Один обов'язковий для одного.
Розглянемо наступну діаграму:
Ще одна репрезентація:
Один обов'язковий для одного: Passport (Паспорт) повинен мати Person (Особу), якій він належить. Особа може існувати без паспорта (наприклад, діти).
Багато до багатьох
Зв'язок "багато до багатьох" - це також комбінація двох зв'язків, але більш очевидна.
Цей зв'язок вимагає створення нової таблиці. Нова таблиця повинна мати три стовпці: id (ідентифікатор для кожного відношення), first_table_id і second_table_id. Стовпці first_table_id і second_table_id є зовнішніми ключами для пов'язаних таблиць.
Є driver_id та car_id (зовнішні ключі). У таблиці "driver-car" ми можемо побачити п'ять відносин з унікальними ідентифікаторами:
- (id 1 і 2) Водій Джон (driver_id=1) може керувати автомобілями Subaru (car_id=1) та BMW (car_id=3).
- (id 3, 4 і 5) Водій Емма (driver_id=2) може керувати автомобілями Subaru (car_id=1), Mercedes (car_id=2) та BMW (car_id=3).
Багато водіїв можуть керувати багатьма автомобілями: Джон і Емма можуть керувати Subaru та BMW.
Діаграма:
Зазвичай на діаграмах приховуються додаткові таблиці. Зверху ви можете побачити відсутність таблиці driver-car.
Дякуємо за ваш відгук!