あなたはほんの少しのガイダンスが欲しいようです。簡単に説明します。
$sql = "CREATE TABLE customerGroups (
customer_id int(11) NOT NULL,
group_id int(11) NOT NULL,
PRIMARY KEY (customer_id, group_id),
CONSTRAINT customers_customergroups_fk
FOREIGN KEY (customer_id)
REFERENCES customers (customer_id)
ON DELETE CASCADE,
CONSTRAINT groups_customergroups_fk
FOREIGN KEY (group_id)
REFERENCES groups (group_id)
ON DELETE CASCADE
)ENGINE = INNODB;";
必要なのは IDを特定するのが難しい場合のID番号。人と接するとき、アイデンティティを特定するのは難しいです。 「ジョン・スミス」という名前の人はたくさんいます。
しかし、あなたはすでに特定されている2つのことを扱っています。 (そして、何よりもID番号で識別されます。)
カスケード削除は理にかなっています。 ID番号の更新をカスケードすることは比較的まれです。彼らは決して変わらないと推定されています。 (OracleDBAが主キーを常にしなければならないと主張する主な理由 ID番号であり、絶対にしてはいけないこと 変更は、Oracleができないためです。 カスケード更新。)後で、いくつかのID番号が必要 何らかの理由で変更するには、テーブルを変更してONUPDATECASCADEを含めることができます。
$sql = "CREATE TABLE groups
(
group_id int(11) NOT NULL AUTO_INCREMENT,
group_title varchar(50) NOT NULL UNIQUE,
group_desc varchar(140),
PRIMARY KEY (group_id)
)ENGINE = INNODB;";
group_titleに対する追加の一意の制約に注意してください。データベースでこのようなもの(下記)を許可したくない。
group_id group_title
--
1 First group
2 First group
3 First group
...
9384 First group
これらの種類の変更をすべてのテーブルで実行する必要があります。 (おそらく、顧客のテーブルを除いて。)