我正在创建一个社交网站,我只是对我看到的功能的逻辑感到困惑。这是我的
seen TABLE
__________________________________
|seen_ID|seen_notif_ID|seen_viewers|
----------------------------------
| 1 | 1200 | 352,1,444 |
用这张表我的
seen_notif_ID column
来自我的
notif TABLE
所有用户操作都被添加到notif表中,并且notif表中AFTER INSERT的数据库内的触发器函数也添加到了看到的表中。
表示seen_viewers列。如果用户使用特定的通知ID单击他的通知,我将只更新此列并添加user_id。 我在数据库中也有一个STOCK PROCEDURE,我可以REVERSE CONCAT在seen_viewers列中验证我是否已经看到了该通知ID。
如果用户已经查看过特定帖子/评论/标签等,这就是我得到的方式。
这可以实现吗?而不是为UNNOTIFY制作一张桌子?
答案 0 :(得分:1)
根本不是这样做的方法。阅读有关数据库规范化的一些教程。如果你想跟踪谁看到了什么,不要保留逗号分隔的id列表:制作一个单独的表,其中每个id是一个单独的行。这是基本的数据库设计。研究一对多和多对多的关系,看看它是如何完成的。那么你就不会浪费时间来运行一些'反向连接'功能。