У меня есть существующая схема SQL, которая использует стратегию супертипа / подтипа, и я пытаюсь скопировать ее с Doctrine, используя наследование таблиц классов.
Я думаю, что у меня все работает, кроме ConcreteChild_1_2
, которыйтребует, чтобы foo
был уникальным для данного account_id
.
Я не верю, что возможно создать уникальный индекс, который включает столбцы из нескольких таблиц, верно?
Следовательно,чтобы применить это правило, я добавил account_id
к ConcreteChild_1_2
и поместил в него соответствующий уникальный индекс, однако Doctrine жалуется, что столбец дублирован.
Нужно ли будет переименовывать ConcreteChild_1_2.account_id
во что-то вродеConcreteChild_1_2.account_id_contraint_enforcer
или я могу заставить Doctrine использовать псевдоним для account_id
, чтобы имя таблицы SQL оставалось account_id
?
- AbstractParent (идентификатор PK, поля
account_id
) - AbstractChild_1 (идентификатор PK 1-в-1 FK для AbstractParent.id)
- AbstractChild_2 (идентификатор PK 1-в-1 FK в AbstractParent.id)
- ConcreteChild_1_1 (идентификатор PK 1-to-1 FK to AbstractChild1.id)
- ConcreteChild_1_2 (PK ID 1-к-1 от FK до AbstractChild1.id, поля
account_id
, foo
)