gpt4 book ai didi

MySQL - 有什么方法可以将 FOREIGN KEY 设置为 NULL?

转载 作者:行者123 更新时间:2023-11-29 10:53:50 25 4
gpt4 key购买 nike

我正在为学校的健身房创建一个数据库,并且有一个没有教练的“开放健身房”,但是您可以像注册任何其他类(class)一样注册开放健身房。 FK 不能为 NULL,因为它是父表中的 PK,这是有道理的,但如果有任何方法可以解决这个问题,任何帮助都会很棒。

不确定我是否应该为开放健身房类(class)额外制作一张 table ,不确定这是否是最理想的方式。

CREATE TABLE `instructor` (
`InstructorID` VARCHAR(50) NOT NULL,
`First Name` VARCHAR(50) DEFAULT NULL,
`Last Name` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (InstructorID)
) ENGINE=INNODB DEFAULT CHARSET=latin1;

CREATE TABLE `class` (
`ClassID` DECIMAL(10,0) NOT NULL,
`Name` VARCHAR(50) DEFAULT NULL,
`Type` VARCHAR(50) DEFAULT NULL,
`Discount Price` DECIMAL(10,0) DEFAULT NULL,
`Regular Price` DECIMAL(10,0) DEFAULT NULL,
`InstructorID` VARCHAR(50) DEFAULT NULL,
`UnitID` DECIMAL(10,0) DEFAULT NULL,
`CourseID` DECIMAL(10,0) NOT NULL,
PRIMARY KEY (ClassID),
FOREIGN KEY (UnitID) REFERENCES subunit(UnitID),
FOREIGN KEY (InstructorID) REFERENCES instructor(InstructorID),
FOREIGN KEY (CourseID) REFERENCES course(CourseID)
) ENGINE=INNODB DEFAULT CHARSET=latin1;

最佳答案

如果您希望“Open Gym”类(class)具有与其他所有类(class)一样的外键,从而获得数据一致性的好处,您可以在教师表中添加一个虚拟行。

否则,如果将 instructor.InstructorId 设置为可为空,也可以工作

关于MySQL - 有什么方法可以将 FOREIGN KEY 设置为 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314480/

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