2009-07-28 81 views
0

我想实现评论,评级,标签等模块到我的实体。我的想法是:标签,评论,评级等数据库设计

comments_table - > COMMENT_ID,COM​​MENT_TEXT

使用实体 - > entitity1_id,entity1_text

ENTITY2 - > entitity2_id,entity2_text

entity1_comments - > entity1_id,COMMENT_ID

entity2_comments - > entity2_id,comment_id

....

这种方法是否正确?

回答

1

它比这更简单。你会想是这样的:

实体:ENTITYID EntityText

评论:CommentID AssocEntityID CommentText

凡AssocEntityID有一个外键关系到实体表ENTITYID列。

对于这个解决方案,以取得编号为1的实体的所有意见,你可以这样做:

SELECT CommentID, CommentText FROM Comments WHERE AssocEntityID = 1 
1

没有,我建议只具有一个entity_comments表,它的意见和实体之间的交叉表。您必须将一个注释表中的entity1和entity2标识作为单独的属性。

所以它看起来像:

​​

一个简单的选择可能是:

select text 
    from entity1 
    , entity_comments 
    , comments_table 
    where entity1.id = entity_comments.entity1_id 
    and entity_comments.comment_id = comments_table.id 
+0

你说插入两个属性使用实体ANS ENTITY2属性到entitycomments表。如果我有10个实体呢? 10个独立的属性和大量的空值? – 2009-07-28 17:00:29