php - 关于数据库结构和许多功能的问题 ala Reddit

标签 php mysql reddit

我有一个关于像 Reddit 这样的书签网站如何管理用户记录的所有“投票”的问题。

例如,当我(User_ID_292929)逻辑上对数据库中的某个帖子(Post_ID_282828)进行投票时,它表示 User_ID_292929 已对 Post_ID_282828 进行了投票。

但是这在数据库中是如何结构化的呢?处理用户个人资料的表是否有一个充满逗号分隔值的字段,并且它会被分解并检查以查看正在加载的页面上的帖子是否已被投票?

我不是在寻找长答案,而是在寻找类似结构的示例程序或文档。

谢谢

最佳答案

假设用户只能对特定帖子投票一次,那么您可以创建一个包含 2 列 (user_idpost_id)。将 user_idpost_id 设置为复合主键。

使用您的示例,假设用户 (User_ID_292929) 对帖子 (Post_ID_282828) 进行了投票。该表将如下所示:



    +---------+---------+
    | user_id | post_id |
    +---------+---------+
    |  292929 |  282828 |
    +---------+---------+

如果有多种投票类型(例如投票赞成或反对),那么您可以添加另一列来定义投票类型(我们称之为vote_type)。

现在表格将如下所示:



    +---------+---------+-----------+
    | user_id | post_id | vote_type |
    +---------+---------+-----------+
    |  292929 |  282828 | up        |
    +---------+---------+-----------+

关于php - 关于数据库结构和许多功能的问题 ala Reddit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8499577/

相关文章:

mysql - CouchDB 压缩

php - 如果登录则有值的表单,如果未登录则为空白

jquery - 如何从 Reddit API 加载更多页面?

php - 我怎样才能从父页面传递一个php变量来包含页面

javascript - 如果 JavaScript 条件为 true,则执行 PHP 脚本

php - 新手的 jQuery Ajax 帖子

php - 如何使用javascript更改动态添加元素的属性值?

mysql - 如果我不需要任何数据,SELECT * 是一个好的做法吗?

javascript - 通用 Reddit 分享按钮

css - 使用 CSS 缩放