Junior — Middle
Comment organiser le stockage des informations sur les voitures, leurs marques et propriétaires dans une base de données en utilisant des tables liées?
sobes.tech IA
Réponse de l'IA
Для организации хранения информации о машинах, их марках и владельцах в базе данных с использованием связных таблиц, обычно применяют реляционную модель с тремя основными таблицами:
- Марки (Brands) — содержит уникальные записи марок автомобилей (например, Toyota, BMW).
- Машины (Cars) — содержит информацию о конкретных автомобилях, включая внешний ключ на таблицу марок.
- Владельцы (Owners) — содержит данные о владельцах автомобилей.
Если один владелец может иметь несколько машин, а машина принадлежать одному владельцу, то связь между владельцами и машинами — один ко многим. Если же машина может иметь нескольких владельцев (например, совместное владение), то нужна связующая таблица (например, Owners_Cars) для реализации связи многие-ко-многим.
Пример структуры таблиц:
-- Таблица марок
CREATE TABLE Brands (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
-- Таблица машин
CREATE TABLE Cars (
id INT PRIMARY KEY,
brand_id INT,
model VARCHAR(100),
year INT,
FOREIGN KEY (brand_id) REFERENCES Brands(id)
);
-- Таблица владельцев
CREATE TABLE Owners (
id INT PRIMARY KEY,
name VARCHAR(100),
contact_info VARCHAR(255)
);
-- Если связь многие-ко-многим
CREATE TABLE Owners_Cars (
owner_id INT,
car_id INT,
PRIMARY KEY (owner_id, car_id),
FOREIGN KEY (owner_id) REFERENCES Owners(id),
FOREIGN KEY (car_id) REFERENCES Cars(id)
);
Таким образом, связные таблицы позволяют эффективно хранить и связывать данные между собой, избегая дублирования и обеспечивая целостность данных.