为"喜欢"和"总赞"进行数据库设计



我已经为我的系统创建了一个基本的like系统。喜欢的以以下格式存储

user_id, post_id, liked_at

我想将总喜欢保留在数据库中(因为它将有助于在检索帖子列表时获得帖子喜欢总数(

post_id, total_likes

我目前有 2 个选项来制作这些功能。

  • 创建视图以生成按后排列的总赞数
  • 触发器以更新总赞数

最好的方法是什么?

由于您可能只会从代码中的一个位置调用"LIKE"代码,因此这是一个折腾:

  • 在应用代码中对其进行编码(内联或子例程(
  • STORED PROCEDURE Like(user_id, post_id)
  • 使用TRIGGER,然后插入一个位置,并让它执行另一个插入/更新
  • VIEW

前两个"感觉"更好;我倾向于避免"副作用";一年后,在我忘记他们之后,他们咬了我。

我想我最喜欢的是子例程或存储过程 - 它将所有用于LIKEing的操作隔离在一个地方;它有助于干净地构建整个系统。

就个人而言,如果可能的话,我宁愿不添加多余的信息。所以我更喜欢一种观点。如果您将"total_like"添加到 post 表并通过触发器保持更新,则不会阻止某人直接更新该字段并错位数据(。 只有当它变慢时,我才会考虑触发器的想法。 希望对你有帮助

最新更新