Bạn có thể tạo một bảng khác CommentableEntity
(mặc dù gọi nó là một cái gì đó tốt hơn). Mỗi hàng trong bảng của bạn (Articles
, Recipes
v.v.) sẽ có tham chiếu đến một hàng duy nhất trong bảng này. Bảng thực thể có thể có type
trường để chỉ ra loại thực thể (để hỗ trợ nối ngược).
Sau đó, bạn có thể có Comment
bảng tham chiếu đến CommentableEntity
, theo kiểu chung chung.
Vì vậy, ví dụ, bạn sẽ kết thúc với các bảng sau:
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...
Bạn có thể thêm bản ghi CommentableEntity mỗi khi bạn thêm Bài viết / Công thức, v.v. Tất cả mã xử lý nhận xét của bạn phải biết là CommentableEntity_id - nó không quan tâm đến loại thứ gì.