这些天我正在阅读Martin Fowler的企业应用程序架构模式,这真的很棒。
因为我有点开始一个OO PHP项目(app后端),我想使用Data Mapper作为我的域模型。我读到了表继承,我注意到它有3种类型。
我不喜欢Single,因为我将拥有多个类型的条目,这些条目将从基类/类型中继承。在这种情况下,我会在db中有很多空的空间。
我不认为其他两个也适合。
这是由于我的计划:
这里的要点是我打算将子类的额外信息保存到公共表tbl_entrymeta中 - 也就是说,我可以有许多从基类Entry类扩展的子类,但不是每个子类的单独表(只有一个,tbl_entrymeta)。
我的问题是:如何在这种情况下使用Data Mapper?创建继承映射器的关键是什么?或元数据映射器是关键?
答案 0 :(得分:-1)
为公共表(EntryMeta)创建一个Data Mapper类,它表示关系数据库表tbl_entrymeta的对象。该对象将在3个字段(列)中保存子类的元:
1. SubClass
2. FieldName
3. FieldType
通过这种方式,您可以轻松存储继承基类的所有子类的元数据,并使用其他信息字段对其进行扩展。