我一直在开发一个复杂的PHP系统,将社交网络的元素融入到一个封闭的人群中。我有几个模块,包括照片和视频库、完整的评论系统、私信、带GUI的个人邮件等等。
我的问题是,无论我如何努力,似乎都不能以有效的方式设计通知和新闻订阅后端,就像Facebook所拥有的那样。这些模块基本上都是事件驱动的,因此将它们连接到通知系统不应该是一个问题。希望集体头脑风暴能解决我的问题。
在这篇文章中,我只会针对通知部分提出我的问题(如果我也包括新闻订阅,这篇文章将变得非常冗长和混乱)。
以下是我第一次MySQL表草案:
notificationID 主键 notificationModule 模块类型外键——照片、视频、评论、消息 notificationConstructor 元素的外键(其类型为“notificationModule”),触发了此通知的创建 notificationUser 此通知所针对的用户 notificationTime 通知创建时间 notificationFlag 通知已读标志
可能存在的问题/冲突
- 当一个用户评论两个不同用户已经评论过的照片时,会触发三个通知吗?一个是给上传照片的用户,另外两个是给每个评论者的?(影响notificationUser)
- notificationTime是创建时间。根据上述问题,如果我们不创建新通知,这个字段应该被notificationUpdateTime替换或与其并存吗?
我希望代码复杂度更低,数据库效率更高。试图将数据库层与代码层分离在网站的这一部分让我感到困惑 :(
我欢迎所有的关注和想法。