【问题标题】:Database Normalization and Nested Lists -- Cannot Think of a Solution数据库规范化和嵌套列表——想不出解决办法
【发布时间】:2011-08-27 10:22:42
【问题描述】:

我正在尝试在我的网站上实现一个类似于 Facebook 的“点赞”功能的系统。用户可以在其中单击counter++ 的按钮。但是,我在将数据有效地存储到我的数据库方面遇到了问题。

每个故事在我的数据库中的stories 表中都有自己的行,列有likeusers_like

我希望每个人只能喜欢这个故事一次。因此,我需要以某种方式存储显示用户实际上拥有like++'d 帖子的数据。

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

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

最好的方法是什么,我理解“最好”是主观的。

我无法在user 表中添加liked 标志,因为会有大量的故事可供人们“喜欢”。

谢谢

【问题讨论】:

    标签: database normalization


    【解决方案1】:

    您的数据库中需要一个多对多表,该表将存储stories 表的外键和user 表的外键。您在此表上设置了一个约束条件,即故事 fk - 用户 fk 组合必须是唯一的。

    您现在甚至不必拥有like 列,您只需计算与您的故事相对应的多对多表中的行数。

    【讨论】:

    • 啊,甜。我有独特的故事和用户键,所以这完全适合我的框架。谢谢。
    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 2019-02-28
    • 2021-10-04
    • 2016-06-09
    • 2017-05-27
    • 1970-01-01
    • 2012-01-11
    • 2016-06-06
    相关资源
    最近更新 更多