我有 Posts
的数据库表和comments
.
我希望允许用户对每条评论和帖子表示喜欢或不喜欢。
所以..我对此没什么想法。请告诉我我是否正确。
在评论表中创建两个附加列。
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 会给您带来问题,因此不推荐。如果您的商店用户 ID 使用分隔符,则更新或检索将是一个整洁的工作。
如果您想查看特定用户是否喜欢特定帖子,请使用以下查询:
select count(*) from tableName where post_id = 100 AND uid =1
关于php - "likes for comments"数据库设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19783772/