La solución más extensible es tener solo una tabla "base" (conectada a "me gusta", etiquetas y comentarios) y "heredar" todas las demás tablas de ella. Agregar un nuevo tipo de entidad implica simplemente agregar una nueva tabla "heredada"; luego, se conecta automáticamente a toda la maquinaria de me gusta/etiquetar/comentario.
El término entidad-relación para esto es "categoría" (consulte la Guía de métodos ERwin , apartado:"Relaciones de subtipos"). El símbolo de categoría es:
Suponiendo que a un usuario le gusten varias entidades, se puede usar una misma etiqueta para más de una entidad, pero un comentario es específico de la entidad, su modelo podría verse así:
Por cierto, hay aproximadamente 3 formas de implementar la "categoría ER":
- Todos los tipos en una tabla.
- Todos los tipos de hormigón en tablas separadas.
- Todos los tipos concretos y abstractos en tablas separadas.
A menos que tenga requisitos de rendimiento muy estrictos, el tercer enfoque es probablemente el mejor (lo que significa que las tablas físicas coinciden 1:1 con las entidades del diagrama anterior).