我有一个由两个表组成的联接表,其中一个表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 中没有单个主键列。它的主键是复合键。
有什么建议吗??
慕田峪4524236
相关分类