Můžete vytvořit další tabulku CommentableEntity
(i když tomu říkej něco lepšího). Každý z řádků ve vašich tabulkách (Articles
, Recipes
atd.) by měl odkaz na jedinečný řádek v této tabulce. Tabulka entit může mít type
pole pro označení typu entity (pro usnadnění zpětného spojování).
Poté můžete přidat Comment
tabulka, která odkazuje na CommentableEntity
, obecným způsobem.
Takže například skončíte s následujícími tabulkami:
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...
Záznam CommentableEntity můžete přidat pokaždé, když přidáte článek/recept atd. Vše, co váš kód pro zpracování komentářů musí znát, je CommentableEntity_id – nezáleží na tom, o jaký typ věci se jedná.