Je zou een andere tabel kunnen maken CommentableEntity
(hoewel noem het iets beters). Elk van de rijen in uw tabellen (Articles
, Recipes
etc.) zou een verwijzing hebben naar een unieke rij in deze tabel. De entiteitstabel heeft mogelijk een type
veld om het type entiteit aan te geven (om omgekeerde samenvoeging te vergemakkelijken).
U kunt dan een Comment
tabel die verwijst naar CommentableEntity
, op een algemene manier.
Zo krijg je bijvoorbeeld de volgende tabellen:
Articles
-----------------
Article_id
CommentableEntity_id (fk, unique)
Content
....
Recipes
-----------------
Recipe_id
CommentableEntity_id (fk, unique)
Content
....
CommentableEntity
-----------------
CommentableEntity_id (pk)
EntityType (e.g. 'Recipe', 'Article')
Comment
-------
Comment_id (pk)
CommentableEntity_id (fk)
User_id (fk)
DateAdded
Comment
...etc...
U kunt het CommentableEntity-record toevoegen elke keer dat u een artikel/recept enz. toevoegt. Het enige dat uw code voor het verwerken van opmerkingen hoeft te weten, is de CommentableEntity_id - het maakt niet uit wat voor soort ding het is.