我有一个(几乎)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)。
我在正确的轨道上吗?谢谢。