molte a molte relazioni nello schema del database e nel diagramma delle classi di oop

3

Ho entità per studenti e gruppi. Lo studente può avere molti gruppi e il gruppo può avere anche molti studenti. quindi nel database dovrei avere la classe media e cambiare la relazione molti a molti con uno-a-molti e molti-a-uno.

La mia domanda è: come devo progettare il diagramma delle classi in oop?

Se la tabella centrale non ha campi aggiuntivi (solo student_id e group_id), allora penso che nessuna classe media sia necessaria in oop, è vero o no?

    
posta mohsenJsh 24.12.2014 - 17:13
fonte

2 risposte

3

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.

    
risposta data 24.12.2014 - 17:53
fonte
1

È corretto. Hai semplicemente una proprietà di gruppi (che per me ha più senso degli studenti, ma è una questione di opinione) che è una collezione enumerabile di studenti che appartengono al gruppo.

    
risposta data 24.12.2014 - 17:38
fonte