非常にわかりやすいです!wwwわたし、プログラミング講師めざしてるので!!wでは、staffsテーブルにも属性を追加しましょう!クライアントの要件は、名前と生年月日がほしいとのことです。companysと同じく、idをプライマリキーとしましょう!なのでidnamebrith_dayOK?OKです!!でですね!staffsは、1つの会社に所属するんです!!必ず、会社に所属しています。ニートはいないんですね。“関係性“を持たせることをリレーションといいますはい!では質問です。(IDだと思います!それど質問なのですが、このカラムを作成すると言う事は3つ目のテーブルが作成されると言う認識で大丈夫ですか?>IDだと思います!正解!>このカラムを作成すると言う事は3つ目のテーブルが作成されると言う認識で大丈夫ですか?違います!staffsテーブルにcompany_idカラムを追加します。ありがとうございます!大丈夫です!テーブルは1つの意味のまとまりなので、従業員に関することは従業員テーブルにまとめます。19950501質問です!B氏と友田の所属会社は?B氏がうちなーてっく友田がFacebookだと思います!正解!!Facebookが社名をMetaに変更しました!そうすると、変更箇所はcompanysテーブルのnameの箇所のみです。staffsテーブルを変更する必要はありません。会社に関することは会社のテーブルで完結できますなるほど!便利だと思います!!そうです!!この関連したテーブルを設定するカラムを“外部キー“と呼びます。今回のように、companysのプライマリキーをstaffsテーブル設定します理解できました!例えばですね〜、Facebook社が1億人いたとしましょうそして、staffsテーブルにはcompanysテーブルのキーではなく単に社名を属性とします。19950501,,,,1億人この場合、Facebook->Metaに社名変更するだけで、1億人のstaffsレコードを更新しないといけません。更新の途中で更新ミスが発生したとしましょう。Facebookのままの人もいるのです!!これはいけないですよね!?いわゆる“整合性“が保てていません!検索していくうちにRDBは、“整合性が〜“とか文章みると思いますが、こういうことです。解説わかりやすいはい!大丈夫です!理解出来ています!いいですね!!1:多の関係とは、このように会社と従業員の関係を指します。ここからが本番です!クライアントから“従業員は複数の会社に所属できるようにしほしい“と言われました!1日前これ以降は、有料会員になりますご指定の口座に振り込んだ方のみ進めます冗談ですよ!www続きをお願いします!笑お〜〜!!udemy用につくろっかなwでは、A氏さん考えてください!このクライアントの要望に対してどう設計しますか?従業員は複数の会社に所属できる正解はないですstaffsテーブルにカラムを追加して対応するって思い浮かびません?変更を加えるならstaffsテーブルかなと直感的に思いましたがどう言ったカラムを追加するのかがイメージできませんでした。100個の会社ができても100カラム追加すれば対応できます。!!一つのカラムに複数ではなく複数のカラムを作成すればいいんだ!!理解できました!お〜!素晴らしいです!!これで、クライアントの要件を満たせますよね!だが!!!!だが!!??これじゃ、ダメなんですよ!これって、1人の所属会社が増えるたびにカラムを追加しないといけないですよね?友田は優秀なので、毎日所属会社が増えます。なると、毎日カラムを追加して、とんでもない量のカラムになりますcompany_1_idcompany_2_idcompany_3_id,,,,company_500_idたしかに。かたやB氏はずっと1つの会社ですcompany_1_id以外のカラムは値が入りません。