首页 > 解决方案 > 一个具有一个主键的表和另一个具有两个主键的表之间是否存在关系?

问题描述

我一般都在问这个问题,但我会举一个例子来说明。

表 1 具有以下列:

ID (Pk)
Order_Desc
Order_DT 

表 2 具有以下列:

ID (PK)
Product_Code (PK)
Product_Desc 

我有可能在 Table1 和 Table2 之间建立关系吗?如果是这样,您将如何在 SQL 中执行此操作而不会遇到错误?如果产品代码或 ID 不是主键,您能否创建关系?相反,它是一个外键?

标签: sql-serverforeign-keysprimary-key

解决方案


table2没有两个主键 - 它有一个由 2 列组成的主键。任何关系表都不会有多个主键——这根本不可能。

与该表的任何 FK 关系必须包括被引用表的 PK 具有的所有列 - 因此任何 FKTable2 必须同时包含IDProduct_Code

这是一个全有或全无的命题——要么你的外键包括引用表主键的所有列——要么你不能建立 FK 关系。


推荐阅读