テーブル名のジレンマ: 単数名と複数名 [closed] 質問する

テーブル名のジレンマ: 単数名と複数名 [closed] 質問する

学術的には、テーブル名は属性を格納するエンティティの単数形にすべきであるとされています。

名前を角括弧で囲む必要がある T-SQL は嫌いですが、テーブル名を単数形に変更するとUsers、テーブルを使用するユーザーが常に角括弧を使用しなければならない状況になります。

私の直感では、単数形のままの方が正しいと思いますが、括弧はスペースを含む列名など、望ましくないものを示しているとも思います。

留まるべきか、それとも去るべきか?

ベストアンサー1

私も同じ疑問を抱いていましたが、ここですべての回答を読んだ後、私は間違いなくSINGULARを使い続けることにしました。理由は次のとおりです。

理由 1 (概念)。リンゴが入っている袋を「AppleBag」のように考えることができます。リンゴが 0 個、1 個、または 100 万個入っているかどうかは関係なく、常に同じ袋です。テーブルは単なるコンテナーであり、テーブル名は、含まれるデータの量ではなく、含まれる内容を説明する必要があります。さらに、複数形の概念は、話し言葉の概念に近いものです (実際には、1 つまたは複数あるかどうかを判断するためです)。

理由 2 . (利便性)。単数名の方が複数名よりも簡単に出てきます。オブジェクトには不規則な複数形があったり、まったく複数形ではなかったりしますが、常に単数形になります (News などのいくつかの例外を除く)。

  • お客様
  • 注文
  • ユーザー
  • 状態
  • ニュース

理由 3. (美観と順序)。特にマスター/詳細シナリオでは、これにより読みやすくなり、名前による整列が改善され、より論理的な順序になります (マスターが最初、詳細が 2 番目)。

  • 1.注文
  • 2.注文内容

に比べ:

  • 1.注文詳細
  • 2.注文

理由 4 (シンプルさ)。テーブル名、主キー、リレーションシップ、エンティティ クラスなどをすべてまとめると、2 つの名前 (単数形のクラス、複数のテーブル、単数形のフィールド、単数形と複数のマスターと詳細など) ではなく、1 つの名前 (単数形) のみを意識する方が適切です。

  • Customer
  • Customer.CustomerID
  • CustomerAddress
  • public Class Customer {...}
  • SELECT FROM Customer WHERE CustomerID = 100

「顧客」を相手にしていることが分かれば、データベースとのやり取りのあらゆるニーズに同じ単語を使用できることが確実になります。

理由 5 . (グローバリゼーション)。世界はますます狭くなってきており、チームにはさまざまな国籍の人がいるかもしれません。全員が英語を母国語としているわけではありません。英語を母国語としないプログラマーにとっては、「Repositories」ではなく「Repository」、または「Statuses」ではなく「Status」と考える方が簡単です。名前を単数形にすると、タイプミスによるエラーが減り、「Child か Children か?」と考える必要がなくなるため時間が節約され、生産性が向上します。

理由 6. (なぜダメなのか?) 執筆時間を節約し、ディスク容量を節約し、さらにはコンピューターのキーボードの寿命を延ばすこともできます。

  • SELECT Customer.CustomerName FROM Customer WHERE Customer.CustomerID = 100
  • SELECT Customers.CustomerName FROM Customers WHERE Customers.CustomerID = 103

3 文字、3 バイト、3 回のキーボード入力を節約できました :)

そして最後に、予約名を混ぜて次のような名前を付けることができます。

  • ユーザー > LoginUser、AppUser、SystemUser、CMSUser、...

または、悪名高い角括弧 [ユーザー] を使用します

おすすめ記事