2014-02-28 31 views
1

这些天我正在阅读Martin Fowler的企业应用架构模式,这真的很棒。福勒的模式:以特定的方式处理表继承

因为我有点开始OO PHP项目(应用程序后端)我想使用数据映射器为我的域模型。我读了关于表继承,​​我注意到它有3种类型。

我不喜欢Single,因为我将有不止几种类型的条目,它们将从基类/类型中继承。在这种情况下,我会在db中有很多空的空间。

我没有看到其他两个都适合。

那是因为我有计划:

  1. 基类(项)
  2. 子类(例如:StateInstitution延伸进入)
  3. 子类(例如:CompanyAffiliate延伸进入) ...

这里的主要观点是,我打算将子类的额外信息保存到公共表tbl_entrymeta中 - 也就是说,我可以有许多子类从基本Entry类扩展,但不是每个单独的表(只有一个,tbl_entrymeta)。

我的问题是:如何在这种情况下使用Data Mapper?创建继承映射器的关键是什么?或者元数据映射器是关键?

+0

“域模型”是描述特定业务领域累积知识总和的术语。所述代码中的知识使用[domain pbjects](http://c2.com/cgi/wiki?DomainObject)来体现。 –

回答

-1

为代表关系数据库表tbl_entrymeta的对象的公用表(EntryMeta)创建Data Mapper类。这个对象将举行3场(列)内的子类的元:

1. SubClass 
2. FieldName 
3. FieldType 

这样你就可以轻松地存储所有继承基类中的子类的元,并与另外的信息领域扩展它。

+0

数据映射器模式的要点是将存储细节与域逻辑分开。 –