一个查询请求有更新操作是否是好的设计?


程序有里面有一个需求,是统计买家的交互信息,而且必须是当前时间往后推三天的,也就是说统计需要实时的。在设计的时候,这个统计放在加载店铺订单的地方。当发送一个查询请求时,同时在这个查询里面做了对应店铺的统计,也就是有新的数据创建或者更新

我个人认为这是一种不好的设计,在一个查询页面应该避免有更新的操作。想问下各位,在程序设计的时候,一个查询页面中有更新操作到底好不好?如果这样做不好,有没有其他方案满足这个需求?

java 程序设计

未来会怎样1 10 years, 2 months ago

一定要抽离出来,功能单一化。

伊卡洛斯不落 answered 10 years, 2 months ago

把统计的功能代码和查询的代码分开来,再给前端页面的查询请求提供一个接口。
这样便可以把各个块分开来。假如统计规则变了,只需修改统计部分的代码。接口不需要变动。

miyano answered 10 years, 2 months ago

设计原则有些不是绝对的,这需要根据需求去分析。按照楼主的需求信息理解,统计的数据涉及用户的交互信息,也就是说,针对当前的统计需求,在用户操作的时候同时更新数据,是无法避免的。除非能从需求中再抽象出更高层次的需求,是不需要实时更新用户交互数据的。既然无法避免查询时同时更新的操作,那么就只能优化这一操作模型了。
当前的统计需求,分为两个模型:查询模型和统计用户交互信息模型。有“店铺订单”,猜测应该是电商之类的,那么用户的操作反馈应该是优于统计模型的,除非统计数据对用户才是重点。这点很重要,需要分清楚模型中,哪一些是重点模型。
既然这样,查询模型和统计模型可以采取非阻塞模式,而且应该优先处理用户查询结果。可以用两条线程分开处理,要保证就算统计模块出现问题(计算时间长,出现错误等等),也不影响用户的操作。

你看不见我哦 answered 10 years, 2 months ago

Your Answer