研修(設計続きとカラムの正規化)
設計続き。
■null設定
必須項目のカラムについてはNullを許可しないように設定変更。
mysql> alter table user_info modify lastname text not null;
■enumとset
typeをenumとsetにする。
mysql> alter table user_info modify sex enum('男','女') not null; mysql> alter table user_info modify hobby set('音楽','映画','その他') not null;
enumは1つ選択、setは複数選択可能。
次に後回しにしていた正規化について。
正規化
データが重複しないようにテーブル構造を整理すること。
ID管理でそれを実現しているようなイメージ。
正規化するには、まず繰り返し項目を排除すること。
例)商品1、商品2、・・・など。
今回は重複しないので無視。
あとは、入力が限られているものを別のテーブルにする。
今回は都道府県がある程度限られているので別テーブルにする。
ここまでは前回でやっている。
最後はテーブル間の関連付けを行う。
これを外部キーを用いて
都道府県テーブルのprefidと
ユーザー情報テーブルのpref用のidとの関連付けを行う。
mysql> alter table user_info add foreign key(prefid) references pref_data(prefid);
alter ・・・ foreign key(関連元カラム) references 関連させるテーブル名(関連させるカラム名)
これで正規化終了。