一旦我从数据库中加载了一个域对象,我就拥有了它的一些相关对象的密钥。例如,当我加载“组织”时,我知道相关“所有者”的 ID。
我希望延迟加载 Owner 属性,因为不能保证我会在请求或会话期间使用它。
因此,在我看来,组织对象可以:
- 拥有 OwnerId 属性和 Owner 属性。Owner 属性只会按需填充(使用 OwnerId 进行查找)。在这种情况下,唯一的(小)挑战是保持两个属性同步;或者
- 仅拥有 Owner 属性。这最初将包含查找所有者的密钥(整数)。如果调用 Owner,则该值将被 Owner 对象替换。在这种情况下,(小)挑战将是避免类型转换问题。
哪种方法最好?有什么理由吗?还是有其他方法?我还缺少什么?
我正在使用 PHP,带有域、映射器和服务层。非常感谢您的想法!