Non hai bisogno di una classe per questo, ma forse ne vuoi uno. A livello di progettazione del database, mi piace evitare di collegare le tabelle e pensare a quelle tabelle come entità di prima classe. Pertanto, se per esempio abbiamo tabelle student
e class
, invece di creare una tabella di collegamento student_class
per soddisfare tale relazione molti-a-molti, potremmo chiamarla qualcosa come enrollment
.
Ora, a livello di OOP, non dobbiamo pensare se scrivere qualcosa come student.addClass(class)
o class.addStudent(student)
. Invece possiamo scrivere new Enrollment(student, class)
. E, se mai decidessimo di dover archiviare più dati su quella relazione, non dovremmo affrontare problemi imbarazzanti che provengono dal collegamento di tabelle con campi aggiuntivi (specialmente per quanto riguarda gli ORM e così via). Poiché la registrazione è un'entità di prima classe, può avere qualsiasi altra proprietà che vogliamo oltre a student
e class
.
Se puoi concettualizzare la relazione tra uno studente e un gruppo come una sua entità, probabilmente sarebbe più pulito modellarla in quel modo.