我有表:
Users{UserId ...}
Professors{UserId ...}
我在两个表中都将UserId
设置为PK,并建立了1:1的关系。
但是如果我尝试插入新用户,它就不起作用,因为它也需要插入到 Professor
表中。
我想让一个用户在 Professor 表中只能有 1 条记录,但我也想让它不必存在于 Professor 表中(我不想让所有用户都成为教授 :) ) .
如何在 SQL Server Management Studio 中设置 1 到 (0...1) 的关系?
我知道 set enforce key constraints to NO 不是解决方案:)
最佳答案
如果您有这些要求:
- 用户可以是教授,也可以不是教授
- 教授永远是用户
那么你是对的,它是一个 1::0..1
关系。在SQL中,可以这样实现:
CREATE TABLE Users
( UserId INT NOT NULL
, ...
, PRIMARY KEY (UserId)
) ;
CREATE TABLE Professors
( UserId INT NOT NULL
, ...
, PRIMARY KEY (UserId)
, FOREIGN KEY (UserId)
REFERENCES Users (UserId)
) ;
根据您的描述,您可能已经以相反的顺序定义了外键约束。
关于sql - 如何在 SQL Server Management Studio 中设置 1 到 0...1 的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19349055/