Den mest udvidelige løsning er kun at have én "basis"-tabel (forbundet med "synes godt om", tags og kommentarer) og "arve" alle andre tabeller fra den. Tilføjelse af en ny slags entitet involverer blot at tilføje en ny "arvet" tabel - den tilsluttes derefter automatisk til hele like/tag/kommentar maskineriet.
Entity-relationship term for dette er "category" (se ERwin Methods Guide , afsnit:"Undertypeforhold"). Kategoriesymbolet er:
Forudsat at en bruger kan lide flere entiteter, kan et samme tag bruges til mere end én enhed, men en kommentar er enhedsspecifik, din model kunne se sådan ud:
BTW, der er groft sagt 3 måder at implementere "ER-kategorien" på:
- Alle typer i én tabel.
- Alle betontyper i separate tabeller.
- Alle konkrete og abstrakte typer i separate tabeller.
Medmindre du har meget strenge præstationskrav, er den tredje tilgang sandsynligvis den bedste (hvilket betyder, at de fysiske tabeller matcher 1:1 entiteterne i diagrammet ovenfor).