DDD - 聚合中的值对象集合导致DB阻抗不匹配

时间:2015-09-27 20:41:34

标签: entity domain-driven-design value-objects

考虑Order / Orderline的情况,其中Orderline是VO集合,在这种情况下,持久的Orderline到DB需要一个具有自己的行集的单独表,作为一个VO,它不能有一个id按照DDD,如果ORM用于持久性,如何解决这种不匹配问题。 (这个例子的有效性是主观的,但在这个小时可以得到更好的结果,请原谅我)

1 个答案:

答案 0 :(得分:3)

OrderLine表肯定不会要求一个ID,因为它只需要与相关的Order相关联。 OrderId表中会包含OrderLine,但 不会包含在OrderLine VO中,因为该关联包含在Order VO中{1}} AR。

例如,如果您的数据库坚持使用主键,则可以使用OrderIdProductId或其他有意义的组合。即使合成密钥(例如UniqueIdentifier)也可以,因为该字段也会从域中排除。