Den mest utbyggbara lösningen är att bara ha en "bas"-tabell (kopplad till "gilla-markeringar", taggar och kommentarer) och "ärva" alla andra tabeller från den. Att lägga till en ny typ av enhet innebär bara att lägga till en ny "ärvd" tabell - den kopplas sedan automatiskt in i hela gilla-/tagg-/kommentarmaskineriet.
Entity-relationship term för detta är "category" (se ERwin Methods Guide , avsnitt:"Subtypsrelationer"). Kategorisymbolen är:
Förutsatt att en användare kan gilla flera enheter, samma tagg kan användas för mer än en enhet men en kommentar är enhetsspecifik, kan din modell se ut så här:
BTW, det finns ungefär tre sätt att implementera "ER-kategorin":
- Alla typer i en tabell.
- Alla betongtyper i separata tabeller.
- Alla konkreta och abstrakta typer i separata tabeller.
Om du inte har mycket stränga prestandakrav är den tredje metoden förmodligen den bästa (vilket innebär att de fysiska tabellerna matchar 1:1 enheterna i diagrammet ovan).