繁体   English   中英

群组通知系统的数据库设计

[英]Database design for Group Notification System

我正在尝试创建一个群组通知系统。 如果我在一个小组中,那么任何在小组墙上发表评论的人都会向每个小组成员发送通知。 这是我的数据库设计:我有两个表: NotificationNotificationRead

NotificationRead
+userId (String)
+lastRead (int) - default is 0

Notification
...
+time(int)
...

每个用户在NotificationRead都有一个条目,它会跟踪我上次阅读通知的时间。 逻辑是:对于特定用户,如果Notification.time > NotificationRead.lastRead ,则将该通知视为未读。 假设在group A ,有4条我没有阅读的通知,它们的time7, 8, 9, 10 ,然后当我单击group A ,我将NotificationRead.lastRead = 10 (最大时间 )设置为所以我不会再读它们。 新通知的时间将从11开始。现在,这是我的问题。 假设我有3个群组,A,B和C

A(4):最大时间为10
B(1):最大时间为14
C(1):最大时间为12

如果单击A,我的NotificationRead.lastRead = 10 ,则A旁边的4清除,B和C旁边的1保持不变。 现在,如果我单击B,则我的lastRead现在是14,因此不仅清除了B旁边的1而且清除了14 > 12以来C旁边的1 谁能帮我想办法解决这个问题。 我愿意完全重新设计一切

不能只将groupID列添加到NotificationRead表中,以便知道每个User \\ Group组合的lastRead值>?

如果您想知道每个用户每组的最后通知时间,则必须存储该信息。 因此,每个用户在NotificationRead中必须有多个记录,该记录必须与用户表成为单独的表。 该表将具有三列,即user_id,group_id和该用户/组的lastread值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM