我在symfony项目中使用Doctrine 1.2, 我正在考虑在我的架构中混合具体和列聚合继承类型: 列聚合允许我在父表中查询并获取父记录和子记录,而具体的继承使我可以获得更清晰的模式。 此外,混合将在同一个继承链中。 我该如何编写模式文件?如下所示?
A:
B:
inheritance:
extends: A
type: concrete
C:
inheritance:
extends: B
type: column_aggregation
keyField: type
keyValue: 1
也许这样:
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
是否有任何危险/警告?
答案 0 :(得分:1)
只要您避免循环继承或菱形继承,您就可以了,可以使用此
循环继承(显然如下所示
A类延伸B. B类扩展A
OR
CLASS A EXTENDS C
CLASS B EXTENDS A
CLASS C EXTENDS A
钻石形状的继承更加圆润。当发生以下类型的情况时会发生这种情况
CLASS A
CLASS B EXTENDS A
CLASS C EXTENDS A
CLASS D EXTENDS B,C