Du kan oprette en anden tabel CommentableEntity
(selvom kalder det noget bedre). Hver af rækkerne i dine tabeller (Articles
, Recipes
osv.) ville have en reference til en unik række i denne tabel. Enhedstabellen kan have en type
felt for at angive typen af enhed (for at hjælpe med omvendt sammenføjning).
Du kan derefter få en Comment
tabel, der refererer til CommentableEntity
, på en generisk måde.
Så for eksempel ender du med følgende tabeller:
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...
Du kan tilføje CommentableEntity-posten, hver gang du tilføjer en artikel/opskrift osv. Alt din kommentarhåndteringskode skal kende er CommentableEntity_id - det er ligeglad med, hvilken type ting det er.