Mysql活动Feed设计

时间:2013-09-26 23:19:23

标签: mysql sql database-design feed

在我的应用程序中,用户可以创建项目(上传他们的照片/图像),欣赏或添加到其他用户项目的收藏夹,写消息,留下评论。还有活动供稿,每个用户都可以看到新评论,新消息,朋友的新项目等。

活动Feed中的每条记录都可以与不同的对象相关联。例如,类型new_vote的记录可以连接到VoteProjectSender(投票的人)。每条记录都有owner。我有以下表格(简单地说):

feed (id, owner_id, sender_id, project_id, vote_id, message_id, comment_id, type)
projects (id, title)
votes (id, vote)

我希望每条记录与几个对象相关。例如,类型new_message的记录可以与多个消息相关联。因此,在活动供稿页面上,我可以向用户显示“Mike为您写了4条消息”。在我看来它将是:

feed (id, type)
projects (id, title)
votes (id, vote)
feeds_projects_relations (feed_id, project_id)
feeds_votes_relations (feed_id, vote_id)

和其他类似的表格。

这是正确的设计吗?有更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您假设从Feed到投票之间存在多对多的关系,您设计了数据库。真的吗?我认为每次投票只涉及一个饲料。在这种情况下,只需将feed_id添加到您的投票表中,而不是feed_votes_relations表,即可指向它所在的Feed。

我也想知道Feed是否是正确的表名。我认为饲料是一种聚合或群体。通常,您希望表格包含单个对象,例如投票或项目,并将表格命名为投票或项目。