我们举一个例子,我们有两个实体:ServiceProvider
和TelephoneNumber
。该系统允许服务提供商添加电话号码。由服务提供商添加的每个电话号码由TelephoneNumber
的实例表示。所以,我有这两个实体之间的关联。目前,我已经决定一个TelephoneNumber
实例与一个服务提供者关联。我还决定这两个实体属于相同的集合,其中ServiceProvider
是聚合根(一个参数是TelephoneNumber
生命周期取决于ServiceProvider
实体)。遍历方向和性能
我的问题是关于协会的遍历方向。我事先知道服务提供商可能会添加数百万个电话号码。
如果关联的遍历方向是从ServiceProvider
到TelephoneNumber
,如何以有效的方式实现?在ServiceProvider
实体中存储一组电话号码效率不高(特别是对于内存)。可以使用延迟加载,但它会通过使用支持它的框架(例如Hibernate)来限制实现选项。
在一个已知的例子中,我们有Customer
和Order
实体,通常会选择从Order
到Customer
的单向关联。如果关联的遍历方向是从TelephoneNumber
到ServiceProvider
,那么如何执行TelephoneNumber
的CRUD操作?我想我们需要使用TelephoneNumberRepository
?但是,我经常看到应该仅为聚合根定义存储库,因为我们通常会获得聚合根实例,并且我们通过它与域模型进行通信。
感谢
您使用的是关系数据库吗? – 2012-04-03 09:53:26
@PreetKukreti是的,我们将在第一阶段使用关系数据库。 – 2012-04-03 11:31:24
添加完后,您将如何访问电话号码?你会大量加载它们,只是其中一些符合特定标准...?你确定没有什么比电话号码更多的电话号码吗?周围没有其他物体? – guillaume31 2012-04-04 15:33:15