26

我在 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

有任何危险/警告吗?

4

1 回答 1

1

只要您避免循环继承或菱形继承,您就可以使用它

循环继承(显然如下

A 类扩展 B 类 B 扩展 A

或者

A级扩展C

B 类扩展 A

C 类扩展 A

菱形继承更圆润一些。当以下类型的条件发生时会发生

甲级

B 类扩展 A

C 类扩展 A

D 类扩展 B、C

于 2011-04-29T13:23:34.093 回答