タイトルの通り、PostgreSQLではテーブル名、カラム名など識別子に英大文字を使うべきではありません。
PostgreSQLは命令中の識別子を読み取るとき、二重引用符でくくられていなければ大文字を小文字に正規化します。その上で大文字小文字を区別して認識します。
その結果、
- PgAdminで
Users
テーブルを作る - ツールはちゃんと二重引用符でくくるのでそのままの名前でテーブルができる
- コード内で
select id, name from Users
などと書くと、select id, name from users
と解釈されてしまいテーブルが見つからない
などという馬鹿馬鹿しい事故が起こることになります。
手書きでSQLを書くならまだしも、O/Rマッパーが絡んだりするとや闇要素でてきますね。
(本人のブログ記事 http://cs.hatenablog.jp/entry/2014/05/31/125239 の再掲)