#本記事について
今後の開発の参考になればと思い、マスターテーブルについて、講義内容や職場での実体験をまとめたもの。
##マスターテーブルについて
マスターテーブルとは、システムの運用上変更が頻繁にない基本的な情報が格納されたテーブル。
例えば、商品の情報が格納されたデータベースであれば「商品情報」「商品カテゴリ情報」がマスタテーブルになる。
「商品マスタ」「商品カテゴリマスタ」などと呼ばれる。
マスタは「m_」や「mst_」などの名前から始める、というルールでテーブル名がつけられる。
(テーブル名の例: mst_product,m_product)
##マスターテーブルの活用例
カラムの中で同じ値が繰り返し入る場合は、マスターテーブルを利用する。
ここでは顧客情報のテーブルに、関連するデータ(性別マスタ、職業マスタ)を紐付ける。
以下のような、3つのテーブルをINNER JOINを使用して結合する。
性別ID、職業IDにそれぞれ相対する名称を紐付ける。
①t_customer(顧客情報テーブル)
id | custmer_name | gender_id | jod_id | prefectures | municipality | address |
---|---|---|---|---|---|---|
1 | 田中 | 1 | 2 | 東京都 | 港区 | 西麻布1丁目1番1号XXビル |
②m_gender(性別マスタ)
id | gender_name |
---|---|
1 | 女性 |
2 | 男性 |
3 | その他 |
②m_job(職業マスタ)
id | job_name |
---|---|
1 | 会社員 |
2 | 経営者・会社役員 |
3 | 学生 |
4 | フリーター |
5 | その他 |
##sql文
t_customer、m_gender、m_jobを内部結合。
m_genderのgender_name、m_jobのjob_nameを表示する。
SELECT * FROM t_customer
INNER JOIN m_job ON t_customer.job_id = m_job.id
INNER JOIN m_gender ON t_customer.gender_id = m_gender.id
##結果
t_customer(顧客情報テーブル)にgender_name(性別名称)、jod_name(職業名称)が表示される。
id | custmer_name | gender_id | gender_name | jod_id | jod_name | prefectures | municipality | address |
---|---|---|---|---|---|---|---|---|
1 | 田中 | 1 | 女性 | 2 | 経営者・会社役員 | 東京都 | 港区 | 西麻布1丁目1番1号XXビル |
以上。