繁体   English   中英

“喜欢评论”数据库设计? [关闭]

[英]“likes for comments” database designing? [closed]

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

在注释表中创建两个其他列。

likes | liked_uids

如果某人单击“喜欢”按钮,则在“ likes字段中为当前值添加+1,否则为当前值添加-1。 并将用户的ID作为字符串(以“-”破折号分隔)添加到liked_uids字段中。 然后下一次我可以将该字符串保存到数组中并进行检查,
当前用户ID是否已记录。 如果用户ID是,则可以确定该用户是否已参加。

但是我在这种结构上没有什么问题,如果一个以上的用户会一次喜欢一个帖子怎么办? 那么我可能会从liked_uids字符串(最后一个uid)中丢失一些数据。

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

您可以这样创建->

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

不建议存储点赞计数。如果您要计算特定帖子的点赞:

select count(*) from tableName where post_id = 100

存储由任何分隔符分隔的用户ID会使您陷入问题,因此不建议使用 如果使用定界符来更新或检索商店用户标识,将是一件容易的事。

如果要查看特定用户是否喜欢特定用户,请使用以下查询:

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

一种方法是使用单独的Likes表,该表的Likes,DisLikes,Likes_UID,DisLikes_UID列和映射表用于评论和点赞,例如: Comments_Likes和帖子和点赞Posts_Likes

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

我从未做过任何类似的事情,但是我不会在注释表中添加这两列。 我宁愿创建一个像“ votes”这样的新表,它还会有以下几列。

comment_ref | like | user_ref

每当有人喜欢评论时,您都要在其中插入新行。 您也可以将comment_ref和user_ref组合作为键,因此不能两次插入。

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

SELECT COUNT(*) FROM votes WHERE comment_ref = 123

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM