前回の続きです。
備忘録のため、記事にします。
4.外部キーで置き換える
以下は注文テーブルカラムになります。会員氏名というカラムがありますが、ある問題が起こる可能性があります。
会員氏名を name:stringというデータ型で保存しているため、同姓同名の人がいた場合に識別できなくなってしまいます。
ではどのようにすればよいでしょうか。
注文テーブルの会員氏名を会員idというカラムに変更することにより、同姓同名の場合でもidにより識別することができます。
注文id 1 の会員氏名は会員テーブルのid 14 の山田花子さん
注文id 2の会員氏名は会員テーブルのid 89 の山田花子さんになります。
外部キーで置き換えられる場合はほかのテーブルから関連付けをする必要があります。
5.マスタ項目を分割する
上記のような商品テーブルが存在するとします。
例えば、リリース後に商品ジャンルを変更・追加する必要が発生しました。
一つ一つ変更するのはとても手間で、大変ですよね。
そこで、商品マスターテーブルを作成して、商品テーブルのジャンルカラムに外部キーとしてカラムを追加したいと思います。
商品ジャンルテーブルを新たに作成し、ジャンルidを関連付けました。ジャンルidを追加したことにより、変更や追加などがあった場合、商品ジャンルテーブルを更新すればいいので、修正が簡単になりましたね。
6.多重度を考える
ER図を作成する上で一番理解が難しかった部分になります。
データベースは上記のようにほかのテーブルと関連づける場合がありますが、関連付ける際に注意するポイントがあって、「片方のカラムから見て、相手のカラムはいくつあるか」という部分を注意する必要があります。具体的にデータベースを作成しながら確認していきます。
学生が所属するクラスは1つ
そのクラスには生徒が複数いる このような関係を1対多の関係といいます。
例2 多対多の場合
次に部活動テーブルを用いて説明します。
学生は1つ以上の部活動に所属できることとします。
一つのカラムに繰り返しが発生してしまっていたり、同じカラムが増えてしまいます。ではどのように改善すればいいのでしょうか。
部活動中間テーブルというテーブルを作成することにより、1対多の関係が作れるようになりました。
Railsでは1対多の関係にすることにより、テーブル間でデータの受け渡しができるようになります。この1対多という関係は非常に大切だと思ったので、理解を深めたいと思います。
エンジニアの未経験転職を目指しています。間違いなどがあればご指摘いただきたいです。拙い文章でしたが、御覧いただきましてありがとうございました。