标签、评论、评分等数据库设计

发布于 2024-07-29 06:05:26 字数 271 浏览 6 评论 0原文

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

comments_table -> comment_id, comment_text

实体1 -> 实体1_id,实体1_文本

实体2-> 实体2_id,实体2_文本

实体1_评论-> 实体1_id,评论_id

实体2_评论-> entity2_id、comment_id

....

这种方法正确吗?

I want to implement modules such as comment, rating, tag, etc. to my entities. What I thought was:

comments_table -> comment_id, comment_text

entity1 -> entitity1_id, entity1_text

entity2 -> entitity2_id, entity2_text

entity1_comments -> entity1_id, comment_id

entity2_comments -> entity2_id, comment_id

....

Is this approach correct?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

歌入人心 2024-08-05 06:05:26

比那更简单。 您将需要这样的内容:

Entity: EntityID EntityText

Comments: CommentID AssocEntityID CommentText

其中 AssocEntityID 与实体表 EntityID 列有外键关系。

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

SELECT CommentID, CommentText FROM Comments WHERE AssocEntityID = 1

It is simpler than that. You are going to want something like this:

Entity: EntityID EntityText

Comments: CommentID AssocEntityID CommentText

Where AssocEntityID has a foreign key relation to the Entity table EntityID column.

For this solution, to get all comments for Entity with ID 1, you would do this:

SELECT CommentID, CommentText FROM Comments WHERE AssocEntityID = 1
戈亓 2024-08-05 06:05:26

不,我建议只使用一个entity_comments 表,它是评论和实体之间的相交表。 您必须在一条评论表中将实体 1 和实体 2 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

No, I would suggest having just one entity_comments table that is an intersect table between comments and entity. You would have to have the entity1 and entity2 ids in the one comments table as separate attributes.

so it would look like:

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

a simple select might be:

select text
  from entity1
     , entity_comments
     , comments_table
  where entity1.id = entity_comments.entity1_id
    and entity_comments.comment_id = comments_table.id
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文