デイケアセンター用の小さなデータベースを作成しました。私は識別関係と非識別関係について読んでいますが、全体についてまだ少し混乱しています. データベースの設計に MySQL Workbench を使用しています。
ここで、親と子の基準は、 aParent
が 1 つ以上を持つことができ、その逆も同様です。したがって、とChildren
の関係は多対多です。(私が理解しているように)これを解決するための最善の方法は、3 番目のテーブルを作成し、それを他の 2 つの間の「接続」として使用することです。Parents
Children
Parets_Children
Parents - 1:n - Parents_Children n:1 - Children
ここで私が抱えている問題は、ここで識別関係を使用するかどうかです。論理的には、親がいなければ子供は存在できず、少なくとも 1 人の子供がいない限り、親は保育園のメンバーにはなりません。どちらも「単独」では存在しません。ただし、MysQL WB に整理してもらうと、非識別関係が作成されます (と思います)。
非常に単純化されたコード:
CREATE TABLE 'parents' (
'id_parents' SMALLINT UNSIGNED NOT NULL ,
'name' VARCHAR(48) NOT NULL ,
PRIMARY KEY ('id_parents');
CREATE TABLE 'parents_children' (
'id_parents' SMALLINT UNSIGNED NOT NULL ,
'id_children' SMALLINT UNSIGNED NOT NULL ,
PRIMARY KEY ('id_parents', 'id_children') ,
FOREIGN KEY ('id_parents') REFERENCES 'parents' ('id_parents' )
FOREIGN KEY ('id_children' ) REFERENCES 'children' ('id_children' );
CREATE TABLE 'children' (
'id_children' SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT ,
'name' VARCHAR(48) NOT NULL ,
PRIMARY KEY ('id_children');
この出力は、目的の機能に到達するのに十分でしょうか? 私は関係全体を誤解していますか?私の質問があまりにも曖昧でないことを願っています。