看到社交网站功能的逻辑

时间:2015-03-17 03:32:09

标签: mysql

我正在创建一个社交网站,我只是对我看到的功能的逻辑感到困惑。这是我的

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制作一张桌子?

1 个答案:

答案 0 :(得分:1)

根本不是这样做的方法。阅读有关数据库规范化的一些教程。如果你想跟踪谁看到了什么,不要保留逗号分隔的id列表:制作一个单独的表,其中每个id是一个单独的行。这是基本的数据库设计。研究一对多和多对多的关系,看看它是如何完成的。那么你就不会浪费时间来运行一些'反向连接'功能。