Я пытаюсь создать систему групповых уведомлений.Если я в группе, то любой, кто прокомментирует стену группы, отправит уведомление каждому участнику группы.Вот мой дизайн базы данных: у меня есть две таблицы: Notification
и NotificationRead
.
NotificationRead<br>
+userId (String)<br>
+lastRead (int) - default is 0
Notification<br>
...<br>
+time(int)<br>
...
Каждый пользователь имеет одну запись в NotificationRead
,он отслеживает, когда я в последний раз читаю уведомление.Логика такова: для конкретного пользователя, если Notification.time > NotificationRead.lastRead
, то это уведомление считается непрочитанным.Допустим, в group A
есть 4 уведомления, которые я не прочитал, и их time
равно 7, 8, 9, 10
, затем, когда я нажимаю на group A
, я устанавливаю NotificationRead.lastRead = 10
(самое большое время *)1018 *), поэтому я не буду читать их снова.У новых уведомлений их время начинается с 11. Теперь вот моя проблема.Допустим, у меня есть 3 группы: A, B и C
A (4): наибольшее время равно 10
B (1): наибольшее время равно14
C (1): наибольшее время равно 12
, если я нажимаю на A, мой NotificationRead.lastRead = 10
, 4
рядом с A выключается, 1
следующийк B и C оставаться на месте.Теперь, если я нажму на B, мой lastRead
сейчас равен 14, так что он не только убирает 1
рядом с B, но и 1
рядом с C, начиная с 14 > 12
.Может ли кто-нибудь помочь мне придумать способ решить эту проблему.Я готов полностью переделать все