gpt4 book ai didi

sql - 如何在 SQL Server Management Studio 中设置 1 到 0...1 的关系

转载 作者:行者123 更新时间:2023-12-01 22:38:31 25 4
gpt4 key购买 nike

我有表:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com