gmn*_*gmn 4 orm design-patterns domain-driven-design repository-pattern
如果你有两个处理持久性关系数据库的存储库,一个处理"Person"对象的personrepository,一个处理"Address"对象的地址存储库,一个person对象有一个地址集合(可能是延迟加载的).显然,personrepository将用于持久更改person对象,而addressrepository将用于持久更改地址对象,但是对于持久更改人员地址集合会有什么责任呢?
有哪些策略可用于持久修改人员对象地址集合返回数据库?那个责任在哪里存放在存储库中(即使在数据库中它也是存储链接到某个人的地址)它是个人存储库吗?
我应该提到这不是使用ORM.
感谢您的任何帮助,任何策略/澄清将不胜感激.
有点思考的东西:
在决定如何解决问题之前,您需要回答两个问题:
如果对1.的答案为否且对2.的答案为否 - 您不应该有一个AddressRepository,而Person应该负责将地址保存在与地址中的外键的正常1对多关系中.否则,Person突然负责删除地址 - 或者需要对AddressRepository的引用 - 这个IMO会以极其糟糕的响应能力结束.
如果对1.的答案是否定的,答案是2.是的 - 你有多对多的关系,而且人应该保持这种多对多的关系(因为这是唯一一个具有持续所需知识的人)它).
如果对1.的答案是肯定而答案是2.否则 - 地址应该负责更新关系 - 并且应该具有Partner属性,因此对象中的关联是单向的.
最后 - 如果两者都是肯定的 - 你再次拥有多对多关系,但这次让地址处理多对多关联会更合理.
我希望这可以帮助你决定:)
| 归档时间: |
|
| 查看次数: |
161 次 |
| 最近记录: |