Подтвердить что ты не робот

Различные типы наследования в одной и той же схеме

Я использую Doctrine 1.2 в проекте symfony, и я рассматриваю возможность комбинирования типов наследования агрегатов бетона и столбцов в моей схеме: агрегация столбцов позволяет мне запрашивать в родительской таблице и получать как родительские, так и дочерние записи, тогда как конкретное наследование позволяет мне получить более чистую схему. Кроме того, сочетание будет в одной цепочке наследования. Как я могу написать файл схемы? Как показано ниже?

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

Есть ли какие-либо опасности/оговорки?

4b9b3361

Ответ 1

Пока вы избегаете кругового наследования или наложения на алмазную форму, вы были бы в порядке и можете использовать этот

A круговой наследование (очевидно, выглядит следующим образом

Класс A расширяет B Класс B расширяет A

ИЛИ

КЛАСС A РАСШИРЯЕТ C

КЛАСС B ПРОДОЛЖАЕТ A

CLASS C EXTENDS A

A Алмазная Настроенное наследование немного круче. Это происходит, когда происходит следующий тип состояния.

КЛАСС А

КЛАСС B ПРОДОЛЖАЕТ A

CLASS C EXTENDS A

CLASS D EXTENDS B, C