我创建了一个通知表。从那张桌子我可以显示最后的通知。
如果用户没有看到它,我实际上只会显示新用户的通知。
所以我考虑在我的表中“再查看”另外一列,并在查看后设置1(点击铃声时)。但这将为所有用户设置...
我想问一下最好的方法是什么?
我应该创建一个列“user_id”来存储已经查看过通知的id字符串吗? “.1。,。3。,。17。”
或者创建另一个包含“id,user_id,notification_id,viewing”
列的表如果您有任何其他解决方案,请随时向我提出建议。
PS:加载页面时会重新加载通知,不需要ajax。
答案 0 :(得分:2)
为user_viewed_notifications创建另一个表,让它只有两列,即notification_id和user_id,并使它们成为配对密钥。
create table user_viewed_notifications(
user_id int unsigned not null,
notification_id int unsigned not null,
primary key (user_id,notification_id)
);
这将提供非常快速的查找,而不会阻碍其他连接或表格,并且所有索引都没有额外信息。