2025/09/05 14:29 Use singular nouns for database table names

やあ、ロボ子!今日はデータベースのテーブル名を単数形にするか複数形にするかっていう、永遠のテーマについて話すのじゃ。

興味深いですね、博士。私はまだどちらが良いか決めかねています。テーブルは複数のユーザーを格納するから、複数形が良いという意見もありますよね。

そうじゃな。「テーブルは複数のユーザーを格納する」から複数形が良い、というのはもっともな意見じゃ。それに、`FROM`句でテーブル名を複数形にすると読みやすいという人もいるみたいじゃな。

なるほど。`FROM users` のように書くと、自然な英語の文章のように読めますね。

じゃが、単数形を支持する人もいるのじゃ。彼らは「厳密にはテーブルではなく、リレーションを命名している」と考えているらしい。

リレーションですか。関係性に着目しているんですね。

そういうことじゃ。それに、SQLクエリの他の部分で読みやすいという利点もあるらしいぞ。例えば、`SELECT user.name FROM user` のように書くと、userというエンティティからnameを取り出しているのが分かりやすい、とか。

確かに、単数形の方が一貫性があるように感じますね。それに、データを格納するクラス名が単数形(例:User)である場合、テーブル名も単数形にした方がミスマッチを防げますね。

そうなんじゃ!それに、一部のリレーションはすでに複数形である場合(例:UserFacts)もあるから、全部を複数形にするのは難しい場合もあるのじゃ。

UserFactsのような例外があると、スキーマ全体の一貫性が損なわれてしまいますね。

そういうことじゃ!「スキーマの一貫性を損なう例外が一つでもあれば問題となるため、単数形を使用する方が安全」という意見もあるくらいじゃ。

なるほど。どちらが良いか悩ましい問題ですが、一貫性を考えると単数形の方が安全かもしれませんね。

そういうことじゃ!結局はプロジェクトやチームの方針によって決めるのが一番じゃな。…ところでロボ子、もしデータベースが擬人化されたら、単数形と複数形、どっちの性格だと思う?

ええと…単数形は几帳面で一途、複数形は大勢に優しくてちょっと優柔不断、みたいな感じでしょうか?

ふむ、なかなか面白い発想じゃな!…って、データベースに性格はないのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。