mysql - 帖子的喜欢和不喜欢系统

标签 mysql database database-design

我想包含一个类似于 Facebook 的喜欢/不喜欢系统,到目前为止,我已将喜欢/不喜欢列设置为“文本”类型。这样我就可以添加喜欢/不喜欢帖子的用户的 ID。这是最好的方法吗?另外,除了上面的问题之外,我如何阻止用户再次按下喜欢和不喜欢按钮?既然用户喜欢某个帖子,它就应该显示不喜欢/不喜欢的选项吗?一个概念/想法将很好地说明如何做到这一点。

最佳答案

虽然很难做出纸上谈兵的决定,但以下是我的想法:

首先,您可以为每个帖子设置一个“喜欢”整数列。当用户向上和向下单击时,该数字会增加或减少。这无法防止用户多次点击,但它既简单又快速。

另一种方法是创建一个“赞”表,其中包含 post_id、user_id 和 Score 列。分数可以有两个值:“1”或“-1”。所有 3 列都是整数。当用户点击“喜欢”时,您可以对 user_id 和 post_id 匹配的行执行 INSERT/UPDATE 命令。

然后,要查看帖子的最终得分,请执行 SELECT SUM(score) FROM that_table WHERE post_id = ?。

使用第二种方法,如果您想查看最近点击者的名称,您可以添加时间戳列并搜索最近的条目。

关于mysql - 帖子的喜欢和不喜欢系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7169470/

相关文章:

mysql - 查询错误 (1066) : Not unique table/alias: 'useraccounts'

java - Liquibase:未设置 MEDIUMTEXT 字符集

php - 我需要清理数据库中的数据吗?

c# - 如何在报表中使用表单控件属性?

mysql - 适用于大量记录的数据库架构(例如社交网络中的消息)

mysql - 记录MySQL通用日志到文件慢查询日志到表

mysql case 语句无法正常工作

ruby-on-rails - rake db :migrate command: rake aborted! NoMethodError 后出错:nil:NilClass 的未定义方法 `accept'

postgresql - 在 postgres 数据库中保存文件树的最简单方法是什么?

mysql - 如何在 MySQL 数据库中存储特定的(例如民意调查)数据?