Назад к вопросам
Junior
62
questionbank

Какие типы связей между моделями в базе данных вы знаете?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

  • One-to-One
  • Many-to-One
  • Many-to-Many

One-to-One

Каждый экземпляр одной сущности связан ровно с одним экземпляром другой сущности, и наоборот.

Например, User и Profile. У каждого пользователя может быть только один профиль, и каждый профиль принадлежит только одному пользователю.

Many-to-One

Несколько экземпляров одной сущности связаны с одним экземпляром другой сущности.

Например, Article и Author. У каждого автора может быть много статей, но каждая статья написана только одним автором.

Many-to-Many

Несколько экземпляров одной сущности связаны с несколькими экземплярами другой сущности.

Например, Student и Course. У каждого студента может быть много курсов, и на каждом курсе может учиться много студентов.

Техническое реализовать Many-to-Many связь обычно требует создания промежуточной таблицы.

-- Пример структуры таблиц для Many-to-Many связи Student и Course

-- Талица для студентов
CREATE TABLE students (
    student_id INT PRIMARY KEY,
    name VARCHAR(100)
);

-- Таблица для курсов
CREATE TABLE courses (
    course_id INT PRIMARY KEY,
    title VARCHAR(100)
);

-- Промежуточная таблица для связи Student и Course
CREATE TABLE student_courses (
    student_course_id INT PRIMARY KEY,
    student_id INT,
    course_id INT,
    FOREIGN KEY (student_id) REFERENCES students(student_id),
    FOREIGN KEY (course_id) REFERENCES courses(course_id)
);