Назад к вопросам
МТС
Senior
3
Какие связи между таблицами бывают в реляционных БД?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В реляционных базах данных существуют три основных типа связей между таблицами:
-
Один к одному (1:1) — каждой записи в первой таблице соответствует ровно одна запись во второй. Например, таблица пользователей и таблица профилей, где у каждого пользователя один профиль.
-
Один ко многим (1:N) — одной записи в первой таблице соответствует множество записей во второй. Например, таблица заказов и таблица товаров в заказе.
-
Многие ко многим (M:N) — записи в обеих таблицах могут иметь множественные связи друг с другом. Для реализации такой связи используется промежуточная таблица (join table), которая содержит внешние ключи обеих таблиц.
Пример связи многие ко многим:
-- Таблица студентов
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100)
);
-- Таблица курсов
CREATE TABLE Courses (
CourseID INT PRIMARY KEY,
Title VARCHAR(100)
);
-- Промежуточная таблица для связи многие ко многим
CREATE TABLE StudentCourses (
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);