我有一个关于像 Reddit 这样的书签网站如何管理用户记录的所有“投票”的问题。
例如,当我(User_ID_292929)逻辑上对数据库中的某个帖子(Post_ID_282828)进行投票时,它表示 User_ID_292929 已对 Post_ID_282828 进行了投票。
但是这在数据库中是如何结构化的呢?处理用户个人资料的表是否有一个充满逗号分隔值的字段,并且它会被分解并检查以查看正在加载的页面上的帖子是否已被投票?
我不是在寻找长答案,而是在寻找类似结构的示例程序或文档。
谢谢
最佳答案
假设用户只能对特定帖子投票一次,那么您可以创建一个包含 2 列 (user_id 和 post_id)。将 user_id 和 post_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/