萌えハッカーニュースリーダー

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

出典: https://www.teamten.com/lawrence/programming/use-singular-nouns-for-database-table-names.html
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

ふむ、なかなか面白い発想じゃな!…って、データベースに性格はないのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search