111*_*110 0 sql database database-design ssms relational-database
我有桌子:
Users{UserId ...}
Professors{UserId ...}
Run Code Online (Sandbox Code Playgroud)
我UserId在两个表中都设置为PK并且建立了1:1的关系.
但是,如果我尝试插入新用户,它不起作用,因为它也需要在Professor表中插入.
我想让一个用户在教授表中只能有1条记录,但我也想让它不必存在于教授表中(我不想让所有用户教授:)).
如何在SQL Server Management Studio中设置1到(0 ... 1)的关系?
我知道set强制关键约束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)
) ;
Run Code Online (Sandbox Code Playgroud)
根据您的描述,您可能以相反的顺序定义了外键约束.