ログ日記

作業ログと日記とメモ

SQLテーブル名の別名、命名規則、T1とか

ときどき

SELECt * FROM item as T1

みたいな連番別名テーブルを見るんだが。
どこかで推奨でもされているんだろうか。


プログラムの変数名に無意味な連番は有り得ないっていうのは共通認識としてあると思うけど、SQLはそうじゃないんだろうか。


検索して上から順に見ていった。

オブジェクト(主にテーブル)のエイリアスは大抵つける、その際、テーブル名を略したエイリアスをつけない(TOKUISAKI_MST TOK, USER_MST USR みたいな)。理由は、略文字はテーブル名が増えたり、似たような名前のテーブルが並ぶと、ぱっと見で判断しにくいから。その点数字だとすぐ見分けが付く。(from 句を参照しないとだめだが) 頭文字の f というのは特に意味なし。

http://d.zeromemory.info/2007/01/19/coding-rule-sql.html

あと、テーブルには必ず別名を付けてて(参照するテーブルが1つの場合でも)、別名は小文字で付けてます。昔は、アルファベット1〜2文字で付けてました。

http://d.hatena.ne.jp/shimooka/20100426/1272291486

テーブルに別名を付ける場合、テーブル名の単数形を使用する

http://bleis-tift.hatenablog.com/entry/20090413/1239604802
  • テーブルの別名はわかりやすく
    • 理由:テーブルがUSER_MSTならumsとか、3文字の略字で表します。他の人から見ても可読性が工場します。3文字と決めているのは、項目を並べたときにツラをあわせるためです。
http://d.hatena.ne.jp/uesama99/20070120/1169261175

ちょっと信じられない。別の世界に紛れ込んだようだ。



手元にあるSQLが書いている本はアート・オブ・SQLしか無かったので読んでみた。
自己参照以外はだいたいテーブル名をそのまま使っている。


だいたいどの言語でも意味が伴わない型の再定義はよくないし、カーネルコーディング規約では typedef struct は禁止だ。
テーブル名にT1とか書かれても難読化しているようにしか思えない。



もうちょっと検索したら真面目に調べてる人が居た。
http://d.hatena.ne.jp/trshugu/20121219/1355883637
なるほど。速くなると思ってる人が居て、それが広まってしまって、さらに理由も忘れられて習慣化したのかな。