将多个表与一个表相关联

时间:2018-08-06 16:00:43

标签: sql sql-server foreign-keys primary-key composite-primary-key

我有一个RDBMS数据库,需要将新表中的列与其他多个不能更改其架构的现有表相关联。

新表看起来像这样

UUID(pk)   PartId(pk) Somecolumn1 SomeColumn2
asdf56das  0001       val1        val2
u44ighhuh  0002       val3        val4
u44ighhuh  0003       val5        val6

我想将UU​​ID列与其他表中的数据相关联。

一种方法是将XML列添加到此新表中,该列会将关联存储为

<tablename><pkcolumn1>value</pkcolumn1> 
<pkcolumn2>value2</pkcolumn2>...........<pkcolumnN>valueN</pkcolumnN> 
</tablename>

使用这种方法,在创建和解析XML时会涉及一些性能成本。

另一种方法是拥有一个新的“映射表”,它将新表与我要与之建立关联的另一个现有表进行映射。

还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

外键可以具有多个列。因此,没有理由您也不能只用于对方表。

1)new_table上的外键到other_table。

或者

2)一个带有外键的新链接表,该外键同时指向new_table和other_table

使用链接表,您可以通过声明适当的唯一约束来建立一对多,多对一或多对多的关系。