まずはここを理解していないと次へは進めないということで、今回は主キーと外部キーとはなんなんだというところをまとめてみたいと思います。
基本を理解しなければER図など書けるわけがありません。
急がば回れ。千里の道も一歩から。
基本に忠実に、着実に一歩ずつ進んでいきます。
では参りましょう!!!
主キー(primary key) とは
データベースのテーブルの中で、レコードを一意に識別するカラムのことです。
と言われも僕なら初め何言ってるか分かりません。
そもそも日本語苦手なので一意の意味もあんま分からないので調べてみました。
広辞苑より
複数あるものの中で、一つだけ存在する、重複しない
とのことです。
要するに、主キーとは
テーブルの中で、レコードが重複しないように見分けるカラム
と言い換えられます。
主キーは、空ではないことと、一意であることが条件です。
よく例えられている出席番号で例えてみます。
この例での主キーは出席番号です。
同じ名前の人もいるし、双子で同じ住所の人も存在するかもしれません。
そのため、他の項目は一意とは言えず主キーにはできません。
主キーがないとDBはどのレコードを更新、削除したらいいのか分からなくなります。
DBにとって必要不可欠な存在です。
外部キー(foreign key) とは
関連したテーブル間を結ぶために設定するカラムのことです。
こちらはクラス番号で例えてみます
この例でいうと、子テーブルと親テーブルでクラス番号が関連しています。
この場合、子テーブルのクラス番号が外部キーになります。(親テーブルのクラス番号は親テーブルでの主キー)
主キーの説明での図ではどのクラスかがわかりませんでした。
そこでクラス番号というカラムを外部キーに設定し、それを辿ることで子テーブルと親テーブルを繋げることができ、クラス名を見つけることができます。
なぜ一つのテーブルに収めないのか
一言で簡単にいうと
情報が重複しまくって、管理できなくなるから!
です。
今はこのぐらいの認識で進んでいきます!
まとめ
主キーと外部キーの意味や違いがわかりました。
主キーにできる条件や、外部キーとの関係を忘れないようにしていきます。
まだまだ複合キーなどもありますが、まずはこの基本を押さえて、次に進みます!
おわりに
今回のモデルやDB周りの苦手意識克服キャンペーンはここまでです。
そろそろ深掘りしていけたらいいなと思っています。
次回またお会いしましょう!

