0

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

活动提要中的每条记录都可以与不同的对象相关联。例如,记录类型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可以与多个消息相关。所以在活动提要页面上,我可以向用户显示“迈克给你写了 4 条消息”。在我看来,它将是:

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

和其他类似的表格。

是正确的设计吗?有没有更好的方法来做到这一点?

谢谢。

4

1 回答 1

0

您在假设从提要到投票之间存在多对多关系的情况下设计了您的数据库。真的吗?我会假设每张投票只与一个提要有关。在这种情况下,而不是 feeds_votes_relations 表,只需将 feed_id 添加到您的投票表以指向它所在的提要。

我也想知道 feed 是否是正确的表名。我将提要视为一个集合或组。通常,您希望您的表格保存单个对象,例如 vote 或 project,并将表格命名为 votes 或 projects。

于 2013-09-27T17:32:28.707 回答