【发布时间】:2017-05-19 18:07:48
【问题描述】:
我正在尝试构建一个包含父表和子表的“关系”的表。但是,两个表中的每一列都不是键或唯一的,并且每个都有重复的值。
例子
表 A - 父级(事实)
**CartNumber**
表 B - 孩子
**CartNumber** not unique
CartValue
表A中的CartNumber链接到B中的CartNumber。
我尝试使用 NOCHECK 实现外键,但由于子列不是主键或唯一键,这当然行不通。请记住,我只是想定义两个列/表之间存在链接。有没有办法定义两列之间的“松散”关系?最好是一种我可以引用系统视图或信息架构来提取此信息的方法
【问题讨论】:
-
不是最漂亮的解决方案,但它可能会使用第三张表来保存所有唯一使用的卡号,然后使两者都与该表建立关系。
-
@SamuelKirschner 第三个表会很大,因为它不仅是 CartNumbers,还有一系列其他列,每个列都用于链接到另一个表。我想最终目标是几乎有一个表来保存从一个表到另一个表的路径定义
-
我理解正确吗?有一张桌子,比方说人。没有唯一的键,所以你看他们的名字。有一个鲍勃、一个汤姆和一个蒂姆,还有一个鲍勃和一个蒂姆。然后是一些相关的数据。数据知道它与 Bob 有某种关联,但不需要知道 which Bob?这闻起来......可能有助于解释更多背景:你想达到什么目的?
-
如果您引用的内容不是唯一的,您将无法专门检索数据。(即,您可能无法通过这些引用获得所需的内容)。
-
@xblade 我刚刚再次阅读了您的问题并感觉到您对关系的概念有误。一个问题:
Table A中的 CartNumber 是否唯一?
标签: sql sql-server sql-server-2012 relationship