SQL 関連のスタイルについて
自分用ルールとしてメモ。
テーブル名について
# | TABLE | VIEW | コメント |
---|---|---|---|
1 | TBL_USER | VIEW_USER | 古風。単数形で大文字 |
2 | T_USER | V_USER | 一般的でない |
3 | users | v_users | 現代風。複数形で小文字 |
Rails でも使われているスタイルが一般的か
カラム名について
# | 列名(例) | コメント | 注意点 |
---|---|---|---|
1 | id | 主キー(PK) | |
2 | group_id | 外部キー(FK) | table(単数形)_id |
3 | parent_group_id | 外部キー (自己参照FK) | 自己参照のときは parent としとくか |
Sequence 名, 制約 について
- seq_<table名(単数)>_<column名>
- chk_<table名(単数)>_<column名>
- idx_<table名(単数)>_<column名> - 複数のときはつなげる?
- 例 : seq_user_id
で良いか
- ただし、列名の制約 30 文字まで、に注意
大文字/小文字について
一般的 (キーワードだけ大文字)
sql
SELECT col01 FROM tbl01 WHERE col01 = 'AAA';
- 昔はシンタックスハイライトも無かったし、みたいなことらしい
モダン (すべて小文字)
sql
select col01 from tbl01 where col01 = 'AAA';
- いまはシンタックスハイライトがあるし、みたいなことらしい
個人的好み (エンティティだけ大文字)
sql
select COL01 from TBL01 where COL01 = 'AAA';
- データにフォーカスを当てたい
カンマと and の位置について
一般的(後ろにつける)
sql
select
COL01,
COL02,
COL03
from
TBL01
where
COL01 = 'val1' and
COL02 = 'val2' and
COL03 = 'val3';
- 仕事用はこれが無難
- でも、うしろに1個追加する毎に差分が2行出るのは煩雑
個人的好み (前につける)
sql
select
COL01
, COL02
, COL03
from
TBL01
where
COL01 = 'val1'
and COL02 = 'val2'
and COL03 = 'val3'
;
- 癖があるのは認識してるが、行を足すときに楽で
- 個人プロジェクトはこうしておこう