0

我想为我的实体实现评论、评级、标签等模块。我的想法是:

评论表 -> 评论 ID、评论文本

entity1 -> entity1_id,entity1_text

entity2 -> entity2_id, entity2_text

entity1_comments -> entity1_id,comment_id

entity2_comments -> entity2_id,comment_id

……

这种方法正确吗?

4

2 回答 2

1

它比那更简单。你会想要这样的东西:

实体:EntityID EntityText

评论:CommentID AssocEntityID CommentText

其中 AssocEntityID 与 Entity 表的 EntityID 列有外键关系。

对于此解决方案,要获取 ID 为 1 的实体的所有评论,您可以执行以下操作:

SELECT CommentID, CommentText FROM Comments WHERE AssocEntityID = 1
于 2009-07-28T16:05:24.780 回答
1

不,我建议只有一个 entity_comments 表,它是评论和实体之间的相交表。您必须将一个评论表中的 entity1 和 entity2 id 作为单独的属性。

所以它看起来像:

entitiy1 -> entity_comments <- comments_table
entitiy2 -> entity_comments <- comments_table

一个简单的选择可能是:

select text
  from entity1
     , entity_comments
     , comments_table
  where entity1.id = entity_comments.entity1_id
    and entity_comments.comment_id = comments_table.id
于 2009-07-28T16:05:51.737 回答