Первичный ключ + Компонентный первичный ключ, вызывающий проблему в схеме базы данных propel

У меня есть таблица, которая использует первичный ключ с автоматическим добавлением и имеет несколько полей.

<column name="id" type="INTEGER" primaryKey="true" required="true" autoIncrement="true" /> <column name="field1" type="INTEGER" required="true" /> <column name="field2" type="INTEGER" required="true" /> <column name="field3" type="INTEGER" /> <column name="field4" type="INTEGER" /> <column name="field5" type="INTEGER" /> 

Я хочу убедиться, что field1 + field2 не используется более одного раза, поэтому я добавил их в качестве первичных ключей в дополнение к id, но это создает проблемы, когда я пытаюсь использовать findPK() . Я бы предпочел, чтобы в качестве первичного ключа был добавлен auto-incremented id, но я также хочу убедиться, что поле field1 + field2 не вводится более одного раза.

 <column name="id" type="INTEGER" primaryKey="true" required="true" autoIncrement="true" /> <column name="field1" type="INTEGER" required="true" primaryKey="true" /> <column name="field2" type="INTEGER" required="true" primaryKey="true" /> 

Попробуйте установить уникальный индекс в этих полях, например:

 <unique> <unique-column name="/field1/" /> <unique-column name="/field2/" /> </unique> 

в соответствии с документом propel doc

И вот ответ на доктрину с ямлом

 Pet: columns: pet_name: {type: string(32)} owner_id: {type: integer} indexes: owner_name: fields: [pet_name, owner_id] type: unique Домашние Pet: columns: pet_name: {type: string(32)} owner_id: {type: integer} indexes: owner_name: fields: [pet_name, owner_id] type: unique