我正在尝试对我的系统域进行建模,但我遇到并发布并可以提供一些帮助。
我的问题是透视。我正在建立一个系统,我有一个Customer实体,该实体将有许多Order实体,系统将需要列出所选客户的所有订单(透视图1)。因此,我建模了一个Customer类,其中包含一组Orders ...简单。但是我刚刚意识到系统还需要列出所有订单以及客户的详细信息(透视图2),这意味着我从每个订单中都有一个客户参考。
问题在于,从每个角度来看,我都会花时间创建我不感兴趣的对象。当我显示订单列表时,将为每个订单创建一个客户实例;反过来,客户实例将持有他们已经订购的订单集合(从这个角度来看,我不感兴趣!!)。
有人可以帮忙提出建议吗?我以前遇到过这个问题,但我从未花时间设计合适的解决方案。
此致
JLove
答案 0 :(得分:2)
我之前见过这个。诀窍是区分客户身份和客户详细信息(例如订单)。然后,您可以从所有订单对象链接到Customer-Identity-Object,在另一个视图链接中从Customer-Identity-Object链接到Customer-Details-Object,它进一步链接到订单对象(您可能希望订购此对象)按时间顺序)。
实现可以在Object-System或关系数据库中保存(在这种情况下,您将拥有一个表“Customers”,其中CustomerID为Key,它们的地址等;以及一个以OrderID为键的表“Orders”,和CustomerID作为另一栏。