点赞和总点赞的数据库设计

问题描述 投票:-1回答:2

我已经为我的系统创建了一个基本的类似系统。点赞以以下格式存储

user_id, post_id, liked_at

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

post_id, total_likes

我目前有2个用于实现这些功能的选项。

  • 创建视图以生成事后总赞
  • 触发以更新总喜欢次数

最佳方式是什么?

mysql database database-design
2个回答
0
投票

个人可能,我宁愿不添加多余的信息。因此,我希望有一个观点。如果您在帖子表中添加“ total_like”并通过触发器使其保持更新(除其他触发器外),则不会阻止某人直接更新该字段并使数据未对齐。只有变慢了,我才会考虑触发的想法。希望对您有所帮助


0
投票

由于您可能只在代码中的一个地方调用“ LIKE”代码,所以这是一个折腾:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.