最近はもっぱら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によっては、大文字、小文字を区別するものもあるそうですが、一律キャメルケースを利用するように統一しておくとミスがないと思います。たまに触ると、このようなこともあるので、注意が必要ですね。