数据库规范化和嵌套列表 - 无法想到解决方案

And*_*ndo 2 database normalization

我试图在我的网站上实现类似于Facebook的"喜欢"功能的系统.用户可以点击按钮counter++的位置.但是,我在将数据有效存储到数据库方面遇到了问题.

每个故事都有在它自己排stories在我的数据库与列的表likeusers_like.

我希望每个人只能一次喜欢这个故事.因此,我需要以某种方式存储数据,以显示用户实际上已经like++'发布了帖子.

我所能做的就是有一个名为users_like列的列CONCAT,然后使用php函数将每个用户(后跟逗号)添加到列中,然后使用php函数添加explode数据.

但是,据我所知,这种方法与数据库规范化的方向相反.

最好的方法是什么,我理解"最好"是主观的.

我不能likeduser桌子上添加一面旗帜,因为这个人可能会喜欢这么多故事.

谢谢

Cha*_*ham 5

数据库中需要多对多的表来存储stories表的外键和表的外键user.你在这个表上加上一个约束,说fk-user fk combo的故事必须是唯一的.

您现在甚至不需要like列,只需计算与您的故事对应的多对多表中的行数.