初めてのシステムと日記

システムも日記も初めてです。

研修(設計続きとカラムの正規化)

設計続き。


■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 関連させるテーブル名(関連させるカラム名)

これで正規化終了。