Sobes.tech
Junior — Middle

Kuidas saab rakendada many-to-many suhet andmebaasis või ORM-is?

sobes.tech AI

Vastus AI-lt

Many-to-many suhe andmebaasis realiseeritakse läbi vahetaulu (join table), mis sisaldab mõlema seotud tabeli väliseid võtmeid. Näiteks, kui on tabelid Students ja Courses, siis luuakse tabel Student_Course koos väljadega student_id ja course_id.

ORM-is, näiteks Java-s kasutades JPA/Hibernate, saab seda realiseerida annotatsiooniga @ManyToMany ja määrates vahetaulu @JoinTable abil.

Näide:

@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<>();
}

Sel moel, ORM haldab automaatselt many-to-many suhet vahetaulu kaudu.