在我的公司,我们正在使用带有内置表单的文件制作者数据库。 (比如ms访问) 我们希望用PHP编写的微服务替换这个数据库。每个微服务都应该有自己的数据库。
作为前端,我们想使用Web应用程序 - >它通过REST调用与服务进行通信。
我的问题是,在我们努力更换当前系统时,我们必须使用filemaker数据库。 filemaker数据库有很多冗余并且没有规范化。
我正在考虑使用存储库模式。我们可以设计我们的域(不是基于当前数据库)和写入文件制作者数据库的存储库...稍后我们可以通过任何其他数据库替换filemaker数据库,使用类似于域层的模式,但我们必须编写存储库层新。
当前数据库存储计算值,我应该在哪里计算这个值,以后应该删除它,我不想再次触摸域层。
获得一些提示会很高兴。 你会怎么做?也许有人有类似问题的经验。
存储库模式是否适合此类问题?我们需要从头开始编写我们的存储库吗?
先谢谢
答案 0 :(得分:1)
你似乎在这方面走得很好。使用现有后端迁移到服务层,然后在完成原始应用程序后替换数据库层。
存储库模式非常适用于此。
对于计算值,应该是业务域层的一部分。保存到存储库的业务对象应该是完整的(从业务逻辑的角度来看)。存储库将负责将这些业务域对象映射到持久化的数据实体,并写入相关表。
如果您遵循这些模式,那么存储库将完全从底层数据库中抽象出来。
当你正在做这项工作时,请帮个忙,不要创建绝对反映基础表结构的业务对象。创建反映“正确”域的对象,而不是围绕文件制作者屏幕有机增长的对象。您已经有一个存储库层来抽象它,也可以利用它。