У меня есть таблица соединения из двух таблиц, из которых одна имеет id
в качестве первичного ключа, а другая имеет 3 столбца в качестве первичного ключа, в основном составной первичный ключ. Теперь, в таблице соединений, на какой столбец я должен ссылаться или, точнее, на то, как ссылаться на несколько столбцов как на внешний ключ при написании наборов изменений.
Вот таблицы:
<changeSet id="Create X table">
<createTable tableName="X">
<column name="SERVICE" type="VARCHAR(50)">
<constraints primaryKey="true"/>
</column>
<column name="ACTION" type="VARCHAR(50)">
<constraints primaryKey="true"/>
</column>
<column name="TARGET" type="VARCHAR(50)">
<constraints primaryKey="true"/>
</column>
</createTable>
</changeSet>
Вторая таблица:
<changeSet id="Create Y table">
<createTable tableName="Y">
<column name="ID" type="VARCHAR(36)">
<constraints primaryKey="true" primaryKeyName="XPKY"/>
</column>
<column name="NAME" type="VARCHAR(50)">
<constraints nullable="false" unique="true"/>
</column>
</createTable>
Объединенная таблица:
<changeSet id ="Create X_Y_REL table">
<createTable tableName="X_Y_REL">
<column name="Y_NAME" type="VARCHAR(50)">
<constraints nullable="false" referencedTableName="Y" referencedColumnNames="NAME"
foreignKeyName="XFK1X_Y_REL"/>
</column>
<column name="X_ID" type="VARCHAR(150)">
<constraints nullable="false" referencedTableName="X" referencedColumnNames="?????"
foreignKeyName="XFK2_X_Y_REL"/>
</column>
</createTable>
Итак, я не знаю, что здесь указать в качестве имени столбца, на который есть ссылка, поскольку в таблице X нет ни одного столбца первичного ключа. Это 'первичный ключ - составной ключ.
Есть предложения?