我正在阅读这本书Applying-Domain-Driven-Design-Pattern。
在其模型设计中,它具有对客户的订单保留参考,但如果是我进行设计,我可能会让客户保留对订单的引用。
那么,问题是,在设计单向关系时,如何确定方向?
答案 0 :(得分:4)
我认为如果这是一个订单处理系统,其中订单是操作级别的概念,而客户提供了如何处理订单的上下文,那么OrderService需要让订单引用订单的客户。另一方面,正如其他人所指出的那样,可以向客户查询其订单。这可以在服务台的客户服务系统中进行。在这种情况下,我可以看到CustomerService需要客户拥有多个订单。
答案 1 :(得分:1)
这个问题的答案是由应用程序的功能驱动的。如果您需要按客户查询订单,那么您的方法是正确的。但是,如果按订单查询客户,则模型设计是正确的。
如果您需要同时执行这两项操作,那么它就是双向关系,您可以选择将其建模为多对多关系。
答案 2 :(得分:1)
结构有一定的功能。
也就是说,想一想你的课程将如何使用。是否会询问客户的订单?是否会为客户查询订单?如果两者兼而有之,则需要双向关系。