Sobes.tech
Back to questions
Junior — Middle
70

Каким образом можно реализовать отношение типа many-to-many в базе данных или ORM?

Companies where asked
Prooftech
Акселератор возможностей

Answer from AI

sobes.tech AI

Отношение many-to-many в базе данных реализуется через промежуточную таблицу (join table), которая содержит внешние ключи на обе связанные таблицы. Например, если есть таблицы Students и Courses, то создаётся таблица Student_Course с полями student_id и course_id.

В ORM, например в Java с использованием JPA/Hibernate, это можно реализовать с помощью аннотации @ManyToMany и указанием промежуточной таблицы через @JoinTable.

Пример:

@Entity
public class Student {
    @Id
    private Long id;

    @ManyToMany
    @JoinTable(
        name = "student_course",
        joinColumns = @JoinColumn(name = "student_id"),
        inverseJoinColumns = @JoinColumn(name = "course_id")
    )
    private Set<Course> courses = new HashSet<>();
}

@Entity
public class Course {
    @Id
    private Long id;

    @ManyToMany(mappedBy = "courses")
    private Set<Student> students = new HashSet<>();
}

Таким образом, ORM автоматически управляет связью many-to-many через промежуточную таблицу.