私は学校でジム用のデータベースを作成していますが、インストラクターを持たない「オープンジム」がありますが、他のクラスと同じようにオープンジムに登録することもできます。それは親テーブルのPKであるという点でFKがNULLになることはできませんが、これを回避する方法があれば、どんな助けも素晴らしいでしょう。MySQL - FOREIGN KEYをNULLに設定する方法はありますか?
開いているジムセッションのためだけに余分なテーブルを作成する必要があるかどうかは不明ですが、これが最も理想的な方法かどうかはわかりません。あなたが他のすべてのクラスのために持っている「オープン・ジム」クラスの外部キーを持つのデータの一貫性の利点の種類をしたい場合は
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;
その列にallow nullを追加するだけです – Beginner
私は 'class'テーブルでDEFAULT NULLに列を設定しますが、値を挿入すると エラー:1452子行を追加または更新できません:外部キー制約が失敗しました( 'groupprojectbtm382'.'class'、CONSTRAINT' class_ibfk_2' FOREIGN KEY( 'InstructorID')REFERENCES' instructor'( 'InstructorID')) –
それにnullを許可する?あなたのテーブル 'class'の' InstructorID' – Beginner