无知的 tonyseek

Yet Another Seeker

对象-关系映射的外键映射问题

最近读 Martin Folwer 的《企业应用架构模式》,其中对于关系型数据库与对象模型的同步问题,提到了使用 DataMapper 和工作单元来协调。

而关系型数据库的数据储存和对象模型的差异在于,关系型数据库是不允许集合类型存在的。在典型的 1 - N 关系模式中,是由 N 来保存对 1 的引用(数据库中体现为外键);而在对象模型中, 1 - N 的聚集关系是由 1 来保存 N 的集合。也就是说,数据映射层的一个职责,是完成这个“翻转”过程。

【碎片】PHP 虚代理实现延迟加载

话说这货是从 Martin 大神的《企业应用架构模式》中学到的,辅助 PHP 动态语言的特性,可以比 Java 轻松很多的实现延迟加载——通过一个虚代理占位符。唯一的缺陷,是只能代理对象,不能代理内置基本类型。

我试水的 PHP 领域模型设计中,也是用这个来实现 DomainObject 的延迟加载。