情報と事実(データ)は違う
正規化とSimple is Beautiful
生年月日は事実
年齢はそのタイミングの情報
Slide 39
Slide 39 text
正規化はUnixの哲学にも通ずる
正規化とSimple is Beautiful
Slide 40
Slide 40 text
Small is beautiful.
小さいものは美しい
Unixの哲学
Slide 41
Slide 41 text
Small is beautiful.
小さなプログラムという発想
1. 小さなプログラムはわかりやすい
2. 小さなプログラムは保守しやすい
3. 小さなプログラムはシステム
リソースに優しい
4. 小さなプログラムは他のツールと組
み合わせやすい
https://amzn.to/33QPAdv
Slide 42
Slide 42 text
Make each program do one thing well.
1つのプログラムには
1つのことをうまくやらせる
Unixの哲学
Slide 43
Slide 43 text
Make each program
do one thing well.
一つのことに集中することで
プログラムに不要な部分をなくせる。
不要な部分があると、
実行速度が遅くなり、
不必要に複雑になり、
融通が効かない。
https://amzn.to/33QPAdv
Slide 44
Slide 44 text
1テーブル、1責務
正規化とSimple is Beautiful
Slide 45
Slide 45 text
1テーブル、1責務
↓
Simpleを目指す
正規化とSimple is Beautiful
Slide 46
Slide 46 text
SimpleとEasyは違う
正規化とSimple is Beautiful
Slide 47
Slide 47 text
正規化とSimple is Beautiful
Slide 48
Slide 48 text
正規化とSimple is Beautiful
Slide 49
Slide 49 text
SimpleとEasyは両立するし
質とスピードも両立する
正規化とSimple is Beautiful
Slide 50
Slide 50 text
Userテーブルの分割の場合
正規化とSimple is Beautiful
Slide 51
Slide 51 text
create table users(
id bigserial
constraint users_pk
primary key,
name text not null,
birthday date not null,
email text not null,
hashed_password text not null
);
create unique index
users_email_uindex on users (email);
Slide 52
Slide 52 text
よく見るテーブルだけど?
正規化とSimple is Beautiful
Slide 53
Slide 53 text
???「LINE認証を追加したいんだけど」
正規化とSimple is Beautiful
Slide 54
Slide 54 text
???「LINE認証を追加したいんだけど」
↓
カラム追加すればえぇやろ!
正規化とSimple is Beautiful
Slide 55
Slide 55 text
alter table users
add line_id text;
alter table users
add line_token text;
create unique index
users_line_token_uindex
on users (line_token);
create unique index
users_line_id_uindex
on users (line_id);