【发布时间】:2014-07-03 13:21:18
【问题描述】:
我有一个问题,我需要在两个表之间创建关系,但唯一性仅存在于两个表中的两个字段之间。这两种价值观都不是独一无二的。正在使用的数据库当前在 SQL Server 2008 R2 中。这是实际情况:
表 B 包含一个 JobNum 列,它已经是 Table A 的外键。 Table B 还包含一个名为 Shipment 的列。这个Shipment 列本身并不是唯一的,但是当与JobNum 配对时,组合是唯一的。 (JobNum AND SHIPMENT = UNIQUE) 我知道我可以创建复合的唯一索引。但是,由于我继承了这个项目,所以已经有一个主键,它只是一个自动递增的标识。 Table C 包含 JobNum 和 Shipment 列,但两个表之间没有实际关系。
如何使用此复合唯一值将表 B 链接到表 C?这需要通过连接表来完成吗?
【问题讨论】:
-
“两个表之间没有实际关系”是什么意思,即具体而言,就表中的值而言?即当一个元组是C时,它告诉你什么关于应用程序的情况?和乙?和A?只有这样才能告诉您 B 和 C 或 A 和 B(或 B 和 A 或 A、B 和 C)是如何“关联”的。
-
@philipxy 我只是说在数据库中没有设置外键约束的关系。但是,数据中的实际值存在关系。
-
好的:没有声明的约束。但是,您是否理解,为了确定约束,需要知道元组对应用程序情况的描述?您是否希望我们假设您正在尝试在这两个字段上声明从 B 到 C 的 fk?
标签: sql sql-server database foreign-key-relationship