最近はもっぱらNoSQLを触ることが多く、久しぶりにPostgreSQLを触ったら色々戸惑ったので、せっかくなのでまとめておきます。
代表的な命名規則
プログラムを書く人であれば、聞いたことのある命名規則で、よく利用するものは、次のものがあるかと思います。
キャメルケース(camelCase) | 単語の先頭を大文字する命名規則です。すべての単語の先頭を大文字にするのが、アッパーキャメルケース、先頭のみ小文字にするのがロワーキャメルケースと呼ばれます。 |
スネークキャメルケース(snake_case) | 単語の間をアンダーバーでつなぐ命名規則です。 |
ケバブケース (kabab-case) | 単語の間をハイフンでつなぐ命名規則です。 |
PostgreSQLでテーブルを作って試してみた
下記のようなCREATE文でテーブルを作成します。
CREATE TABLE IF NOT EXISTS userAttribute (
id SERIAL NOT NULL PRIMARY KEY,
loginId text NOT NULL,
password text NOT NULL,
created_at timestamp NOT NULL DEFAULT current_timestamp,
updated_at timestamp NOT NULL DEFAULT current_timestamp
);
キャメルケース”userAttribute”でテーブルを作成して、テーブル名は、全て小文字”user_attribute”で生成されます。一応、””でくくることで大文字も区別するとあるのですが、テーブルを参照するSelect文でも””でテーブル名をくくらないといけなくなるので、ミスが起こりそうです。ということで、DBでは、キャメルケースは使わないのが良いです。列名も同じです。
まとめ
DBによっては、大文字、小文字を区別するものもあるそうですが、一律キャメルケースを利用するように統一しておくとミスがないと思います。たまに触ると、このようなこともあるので、注意が必要ですね。