永遠にmacのメモに置いていたものをブログにうつそうと思って書きました。
自分用メモみたいな感じです。
知識
正規化関連
まとまりのあるテーブルは切り出す。
例えば、二つの主キーを用意するなら、一つだけのキーに依存する列は別のテーブルに切り出す。
複数のエンティティーを一つのテーブルに入れていたら更新時に変更するレコード数が多くなる(論理設計を行う際に5W1Hを考えて別のテーブルに切り出すとフィールドが増える事態になりにくい)
Aが決まったらbが決まり、bが決まったらcが決まるという流れを一つのテーブルに入れない
1対1のリレーショナルを持つテーブルは基本存在しない→1対1になるテーブルは結合しても大丈夫
(上記、中間テーブルの場合、片方は1対1やけど他のテーブルとの結合は1対多になることはある)
主キーは1テーブル1個だけ。not nullである必要がある
1対多の場合で、0以上を可能な多の場合は、1の方のkeyが必ず多の方に全て現れる必要がある
ビジネス上でのルールは変更の可能性があるのでkeyに適さない
その他
Varchar(8)は’aaa’と打ったらそのまま入れられる
char(8)は’aaa’と打ったら’aaa ‘と8文字に変換される
ER図ではリレーションに関係のないカラムは省略されることがある
Char, varcharは最大255文字まで。それ以上の文字をokにするならtextを使う。
Select * from table_nameのtable_nameは、select文で表示されているものと同じだから、select * from (select * from table_name)みたいに書ける。