我已经为我的系统创建了一个基本的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 表并通过触发器保持更新,则不会阻止某人直接更新该字段并错位数据(。 只有当它变慢时,我才会考虑触发器的想法。 希望对你有帮助