現在、システムのデータベースを設計中です。外部キーの制約はたくさんあります。
私はいくつかのアドバイスを得ることができるかどうか、私は次のどれをすべきかどうか疑問に思っていました:
1)テーブル作成自体の間に制約を指定します。
CREATE TABLE IF NOT EXISTS abc
(
keyword VARCHAR(20) NOT NULL,
id INT UNSIGNED NOT NULL,
FOREIGN KEY (id) REFERENCES xyz(id) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;
2)FK制約なしでテーブルを作成し、後でテーブルを「変更」します。
CREATE TABLE IF NOT EXISTS abc
(
keyword VARCHAR(20) NOT NULL,
id INT UNSIGNED NOT NULL,
)ENGINE=InnoDB;
ALTER TABLE abc ADD CONSTRAINT fk_constraint FOREIGN KEY (id) REFERENCES xyz(id)
ON DELETE CASCADE ON UPDATE CASCADE;
テーブルxyzは、主キーとして「id」を持つ単なる別のテーブルです。