Pre*_*hev 6 java spring hibernate achievements
我的数据库中已有很多现有数据,并希望开发一种点机制,根据每个用户的操作计算每个用户的分数.
我以可插入的方式实现此功能,因此它独立于主逻辑,并且在实体被修改后依赖于发送的Spring事件.
问题是如何处理现有数据.我不想从现在开始收集积分,而是包括所有数据,直到现在.
最实用的方法是什么?我是否应该以提供index()方法的方式设计我的插件,这将强制我的系统从数据库中获取每个单独的实体,发送EntityDirtyEvent,为每个插件触发每个插件,然后更新它,让点被保存在每个实体旁边.这可能会导致很多开销,对吧?
最简单的方法是创建一个复杂的存储过程,然后使index()调用该存储过程.然而,在我看来,这似乎也是一件坏事.既然我必须编写用于计算java中的点的逻辑,为什么还要在SQL中再次使用它?此外,一般而言,我不喜欢将业务逻辑分成不同的层.
有没有人这样做过?请帮忙.
首先我们区分一下实施策略和业务规则。
由于您已经拥有数据,请考虑直接从数据中获取结果。这形成了数据域模型。设计数据模型来存储所有数据。然后,创建一组查询、视图和存储过程来访问和更新数据。
获得这些视图后,使用数据访问库(例如 Spring JDBC Template)来获取这些数据并将它们表示为 Java 对象(列表、地图、人员、点表等)。
到目前为止,无论系统上层发生什么,您所完成的内容都不会发生太大变化。这称为模型。
然后,开发规则库或逻辑实现,确定在什么输入、用户操作、数据条件或所有其他条件下需要什么数据。从数学意义上来说,这就像一个矩阵。从编程意义上来说,这将是一组逻辑语句。如果这个和这个以及这个是真的,那么获取这个数据,否则获取那个数据,等等。这包含了系统中的逻辑。因此它被称为“控制器”。
不要将此逻辑移至查询/存储过程/视图中。
然后最终为此开发一个前端或“控制台”。在最简单的情况下,开发一个控制台输入系统,它采用 .. 并显示一组结果。这是您对系统的“看法”。
您最终可以将视图开发为 Web 应用程序。上述命令行视图在 Restful API 服务器的形式下仍然可行。
| 归档时间: |
|
| 查看次数: |
711 次 |
| 最近记录: |