我有一个“主表”,称之为Customers
:
CREATE TABLE Customers (
CustomerID int PRIMARY KEY NOT NULL,
FirstName nvarchar(50),
LastName nvarchar(50)
)
我有一个“卫星表”,称之为Customer_IllegallyObtainedInformation
:
CREATE TABLE Customer_IllegallyObtainedInformation (
CustomerID int PRIMARY KEY NOT NULL,
CellPhonePin int,
SexualOrientation varchar(20),
EmailPassword varchar(50)
)
现在,我想要的是从Illegal
表回到主Customers
表的外键约束:
换句话说:
- 可以有一个
Customer
没有Illegal
条目_ - 但永远不可能没有一个
Illegal
条目Customer
我的直觉是,在 SQL Server 数据库图中,将
- 从
Illegal
桌子到Customers
桌子_ _
向 SQL Server 表明Customers_IllegallyObtainedInformation
关系中的“子”。相反,SQL Server 中发生的事情使其成为一对一的关系:
这意味着如果您尝试插入 a Customer
,它将失败,因为没有现有Illegal
信息。
如何在 SQL Server 中创建“父子”或“一对一”关系?
注意:不要将示例与问题混淆。我可以在表中创建一个牺牲的主代理键Illegal
:
但这不是我的问题。