这不是元问题。我仅使用 SO 作为示例。
在 StackoverFlow 中,每个答案、每个评论、每个问题、每个投票都有一个效果,会在某个时间点产生一个徽章。我的意思是在每次操作之后都会测试查询列表。
例如如果 A 先生投赞成票,B 先生回答。所以我们必须检查这个B先生的答案是否被点赞了100次,所以给B先生一个徽章,A先生是否被点赞了100次,所以给他一个徽章。
这意味着我必须为每个操作运行至少 100 个查询/IfElse。
现在,我现实生活中的例子是我有一个应用程序,我可以从考勤机接收在线数据。当用户向机器出示他的卡时。我收到这个并将其存储为记录。现在根据这个记录我有多个计算。即他迟到了吗?他迟到了吗?已经持续三天了。他是右类(白类/夜类)吗?今天是假期。这是加类吗。他是不是早了……等等,等等
满足此类要求的最佳策略是什么。
更新: SO 团队可以在这方面指导我们吗?
最佳答案
您使用队列和工作流程。通过这种方式,您可以将更新时刻与实际通知分离,从而允许系统扩展。紧密耦合、基于触发器或类似的解决方案无法扩展,因为每次更新都必须等待所有相关方对通知使用react。使用工作流的处理引擎设计允许通过更改数据轻松添加步骤和通知消费者,而无需更改架构。
例如,了解 MSDN 如何使用队列来处理 MSDN 内容的类似问题:Building the MSDN Aggregation System .
关于sql - 如何在记录更改时更新不同位置(表)的多个信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1442399/