2

我有一个(几乎)1:1 的数据模型,就像 Instagram 一样,其中有一个通知选项卡,告诉你一个事情列表:谁评论了你的帖子(包括文本),谁喜欢你的帖子,谁有刚刚关注了你,谁刚刚关注了你(不是你关注的人)。

到目前为止,我已经制定出我认为需要发生的事情,但我遇到了一些设计缺陷,我将在下面列出......

我的方法

通知表列:UUID(主键)by、to、notificationID(外键引用评论,like)、postID(外键引用post)、notificationText

按照表列:UUID(主键),按,到

评论表列:UUID(主键)、PostID(对帖子的外键引用)、文本、UserID(对评论用户的外键引用)

Like Table Columns: UUID (Primary Key), by, to

每次用户发出这些通知之一(评论、点赞、关注)时,他们还将创建一个通知对象,以便我可以查询通知表。

...请注意,“by”和“to”是执行操作的人与目标用户(即我喜欢其他人的帖子,所以它是“by”我,当前用户)。

设计缺陷:

问题是这些通知不是平等的。一条通知可以有四种不同的结果:一条评论(“某某评论了:'OMG THIS IS A COMMENT!'”),一个赞(“某某喜欢你的帖子”),一个关注(“某某已经开始关注你”)。

但是只有评论和点赞需要显示评论或点赞的来源图片,关注只是关注。因此,通过关注,我根本不需要对帖子或关注的引用,而且我浪费了三列(notificationText、notificationID、postID)。

我在正确的轨道上吗?谢谢。

4

1 回答 1

1

在我看来,你提到的四个表之间没有关系。他们不共享外键引用。我看到的唯一外键引用是指向不属于这四个表之一的表。所以我会说这个模型是正确的方法

于 2017-08-08T03:26:27.720 回答