Anda bisa membuat tabel lain CommentableEntity
(meskipun menyebutnya sesuatu yang lebih baik). Setiap baris dalam tabel Anda (Articles
, Recipes
dll.) akan memiliki referensi ke baris unik di tabel ini. Tabel entitas mungkin memiliki type
bidang untuk menunjukkan jenis entitas (untuk membantu penggabungan terbalik).
Anda kemudian dapat memiliki Comment
tabel yang mereferensikan CommentableEntity
, secara umum.
Jadi misalnya Anda akan mendapatkan tabel berikut:
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...
Anda dapat menambahkan catatan CommentableEntity setiap kali Anda menambahkan Artikel/Resep dll. Semua kode penanganan komentar Anda harus tahu adalah CommentableEntity_id - tidak peduli apa jenisnya.