gre*_*ire 26 inheritance doctrine symfony1 concrete-inheritance column-aggregation
我在symfony项目上使用Doctrine 1.2,我正在考虑在我的模式中混合具体和列聚合继承类型:列聚合让我在父表中查询并获取父记录和子记录,而具体的继承让我得到更清洁的架构.此外,混合将在同一个继承链中.我该如何编写模式文件?喜欢以下?
A:
B:
inheritance:
extends: A
type: concrete
C:
inheritance:
extends: B
type: column_aggregation
keyField: type
keyValue: 1
Run Code Online (Sandbox Code Playgroud)
或者这样或许:
A:
B:
inheritance:
extends: A
type: concrete
C:
inheritance:
extends: B
type: concrete
D:
inheritance:
extends: C
type: column_aggregation
keyField: type
keyValue: 1
E:
inheritance:
extends: C
type: column_aggregation
keyField: type
keyValue: 2
Run Code Online (Sandbox Code Playgroud)
有危险/警告吗?
只要您避免循环继承或菱形继承,您就可以使用它
循环继承(显然如下所示
A 类扩展 B 类 B 扩展 A
或者
A 类延伸 C 类
B 类扩展 A
C 类扩展了 A
钻石形继承有点圆润。当发生以下类型的情况时,就会发生这种情况
A级
B 类扩展 A
C 类扩展了 A
D 类扩展 B、C