“喜欢评论”数据库设计?

时间:2013-11-05 07:27:42

标签: php mysql database database-design phpmyadmin

我有Postscomments的数据库表 我想允许用户对每个评论和帖子表达喜欢或不喜欢 所以..我很少有这样做的想法。请告诉我,无论我是否正确。

在评论表中创建另外两列。

likes | liked_uids

如果某人点击了like按钮,则在likes字段中为当前值添加+1,否则为当前值添加-1。 并将用户的ID添加到liked_uids字段,作为由“ - ”破折号分隔的标记。 然后下次我可以将该字符串输入数组并检查,
当前用户ID是否已记录。如果用户ID是,则可以决定用户是否喜欢参与。

但是我对这个结构没什么问题,如果不止一个用户会立刻想要一个帖子会怎么样?然后我可能会丢失liked_uids字符串(最后一个uid)的一些数据。

所以请告诉我这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

您可以像这样创建>

id type ('comment/like') uid comment      post_id
1   comment               1   good post    100
2    like                 2   null         101
3   like                  1  null          102
4   comment               3  bad post      104

不建议存储像count一样。如果你想计算特定帖子的喜欢:

select count(*) from tableName where post_id = 100

存储由任何分隔符分隔的用户ID会使您遇到问题,因此不会推荐。如果您的商店用户ID使用分隔符,则更新或检索将是整理工作。

如果您想查看特定用户是否喜欢特定帖子,请使用以下查询:

select count(*) from tableName where post_id = 100 AND uid =1

答案 1 :(得分:0)

一种方法是使用单独的喜欢表格,其中包含喜欢,不喜欢,Likes_UID,DisLikes_UID 列以及用于评论和喜欢的映射表,例如: Comments_Likes 以及帖子和赞 Posts_Likes

答案 2 :(得分:0)

我在手机上输入的速度太慢了^^一切都已经回答了。

我从未做过类似的事情,但我不会在评论表中添加两列。我宁愿创建一个像“投票”这样的新表格,它会有以下列。

comment_ref | like | user_ref

每当有人喜欢评论时,你都会在那里插入新的一行。您还可以将组合comment_ref和user_ref作为键,因此您不能将其插入两次。

最后,您只需进行查询即可获得单个评论的投票。

SELECT COUNT(*) FROM votes WHERE comment_ref = 123