Hallo,
Ik zit met een vraagstuk mbt tot de generalisatie van relaties tussen entiteiten. Ik heb een datamodel gemaakt met(in het kort) een member, organisation, project en department enteit.
Nu kan een member lid zijn van een organisatie, project en department de drie relaties tussen member en organisatie, project en department zijn tus allen veel op veel relaties wat effectief inhoud dat er een tussentabel komt. Deze drie tussentabellen zien er vrijwel gelijk uit, alleen is één key steeds verschillend ( project_id, organisation_id of department_id).
Nu vraag ik me af of het goed(netjes) is om deze relatie te generaliseren, wat er op neer komt dat deze drie tussentabellen "mergen" naar één tabel met een key die bestaat uit member_id, container_ID, en container_type.
Container_id en container_type staan dan samen voor de relatie met een project, organisatie of department tabel.
Voor het overzicht even de twee (verkorte)datamodellen:

De oude, originele versie:

Als ik dit doortrek naar mijn klassediagram dan kan het gehele membermanagement in de superklasse(een MemberContainer) van Project, Organisatie en Department regelen.
IMHOis het zo erg flexibel maar misschien vanuit een database perspectief niet helemaal netjes, wat denken jullie?
Ik zit met een vraagstuk mbt tot de generalisatie van relaties tussen entiteiten. Ik heb een datamodel gemaakt met(in het kort) een member, organisation, project en department enteit.
Nu kan een member lid zijn van een organisatie, project en department de drie relaties tussen member en organisatie, project en department zijn tus allen veel op veel relaties wat effectief inhoud dat er een tussentabel komt. Deze drie tussentabellen zien er vrijwel gelijk uit, alleen is één key steeds verschillend ( project_id, organisation_id of department_id).
Nu vraag ik me af of het goed(netjes) is om deze relatie te generaliseren, wat er op neer komt dat deze drie tussentabellen "mergen" naar één tabel met een key die bestaat uit member_id, container_ID, en container_type.
Container_id en container_type staan dan samen voor de relatie met een project, organisatie of department tabel.
Voor het overzicht even de twee (verkorte)datamodellen:

De oude, originele versie:

Als ik dit doortrek naar mijn klassediagram dan kan het gehele membermanagement in de superklasse(een MemberContainer) van Project, Organisatie en Department regelen.
IMHOis het zo erg flexibel maar misschien vanuit een database perspectief niet helemaal netjes, wat denken jullie?
