来自DDD:解决软件核心的复杂性(第 159/160 页):
当专门创建数据库模式作为对象的存储时,值得接受一些模型限制以保持映射非常简单
...
这确实需要牺牲对象模型的丰富性,并且有时必须在数据库设计中做出妥协(例如选择性非规范化),但否则就有失去模型和实现的紧密耦合的风险。
...
但至关重要的是,映射是透明的,通过检查代码或读取映射工具中的条目易于理解。
...
当数据库被视为对象存储时,无论映射工具的功能如何,都不要让数据模型和对象模型相差甚远。牺牲一些丰富的对象关系以保持接近关系模型。
我确实明白,使用更简单的映射,数据映射器将更容易维护,错误更少等,但我不明白为什么我们还可能通过在DM和数据模型之间进行映射来冒失去域模型和DM 实现之间紧密耦合的风险复杂的。
也就是说,在创建DM时,我们应该尽量忽略非域层将如何实现以及它们将使用什么技术。并且由于数据映射器位于DAL内(因此在域层之外),那么DM和数据模型之间映射的复杂性(以及数据映射器的复杂性)如何对DM和DM 实现之间的耦合产生任何影响?
谢谢