gpt4 book ai didi

php - sql 表时间戳缓冲区

转载 作者:行者123 更新时间:2023-11-29 03:04:40 27 4
gpt4 key购买 nike

我正在构建一个具有通知的系统,如果用户“喜欢”某样东西,其他用户会收到通知让他们知道并获得积分。

我有一个存储事件的 actions 表,还有一个标志表明它是否已被读取(通知是否已被读取)。

当用户连续喜欢/不喜欢同一件事(就像人们喜欢做的那样,破坏东西)时,就会出现问题。我不想每次都从其他用户点中添加和减去,我不想真的想记录每个喜欢和不喜欢的事件,所以我需要某种形式的缓冲区等待一段时间看看是否结束结果是一个实际的点赞 - 然后处理事件并显示通知。

点赞本身有时间戳,所以我可以解决这个问题,但我想知道是否有更好的方法将此信息存储到“缓冲区”表中,然后在那里计算最终结果?这样做最具成本效益的方法是什么?

最佳答案

当用户“不喜欢”某个东西时,我会从你的actions 表中删除“喜欢”事件,如果这样的事件仍然悬而未决的话。

如果您想实现更高级的功能,请使用一个缓冲表(如果您能承受在服务器崩溃时丢失一些事件,则可以使用 in memory)来保存最近(比如 10 分钟)的事件。这样,您只需处理一个非常小的数据集即可插入和删除。

然后创建一个EVENT将此临时表中超过 10 分钟的记录刷新到您的引用 actions 表中。

[编辑]

再三考虑,我认为我们可以使用天真的方法:在唯一的 actions 表中插入和删除,但在显示通知时只考虑早于 [your threshold] 的记录 (或计算“喜欢”的数量)。

关于php - sql 表时间戳缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17719814/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com