如何检查用户是否已经喜欢评论

时间:2017-07-04 07:28:28

标签: mysql api web-services facebook-like

我正在设计一个' http api'对于客户端应用程序,它关于评论,情况是,如果应用程序用户登录,他可能喜欢一些评论而不像他们,但他们不能喜欢两次或更多次,所以每次当应用程序从我获取评论数据' http api',数据应该能够告诉客户端应用程序评论是否已被用户所喜欢。 好吧,我最近实现了api,但我发现它工作得不好,我的设计是:

插入 我创建了一张表'评论'用于保存评论(内容,创建时间等)的表格'用户'适用于应用用户,还有一张桌子“喜欢'用于记录哪个用户喜欢哪个评论的信息 当用户喜欢评论时: 1,增加记录' like_counts'在表格'评论' 2,插入表格中设置用户='用户'和评论='评论'

查询:

  1. 从mysql查询评论列表(每页约20条记录)
  2. Foreach非常评论和表格查询喜欢评论=='评论'和user ='用户'
  3. 如果查询结果在步骤2中存在,则表示用户之前喜欢过该评论。
  4. 问题是当客户端获得一个页面的评论时,这意味着我必须使用表格' Like'执行20个查询。我认为,检查用户之前是否喜欢它,这将是非常糟糕的设计。我知道我可以使用一些缓存,比如Redis,下一步,我想知道mysql方式的好方法是什么?

1 个答案:

答案 0 :(得分:0)

我认为评论存储在一个表中,因此会有一个comment_id。

对于具有user_id的用户也是如此。

喜欢的内容存储在名为Likes的表中,有2列:user_id和comment_id。作为comments-table和user-table的外键。

它们一起形成表Likes中的主键。从而防止重复。

如果用户123想要再次评论评论1000,则会导致123-1000组合的重复密钥错误。 所以你的应用程序在插入之前不需要检查:插入将完全失败。在您的应用程序中,任务是识别该错误消息并提供错误消息

相关问题