• ベストアンサー

フィールド名について

一般論というか基本的な考え方として, データベースの中にいくつかテーブルがあって,それぞれリレーション張られていなません。 このときに同じフィールド名を使用することは好ましくないでしょうか? 少し具体的に書くと 例えばアクセスで DB1.MDBというデータベースの中に Aテーブル,Bテーブル,Cテーブルとあったとして Aテーブルの中でNameIDというフィールドを作ったとします。 次にBテーブルを作成していて,またNameIDというフィールド名を使うということです。 このようなデータベースは, どんなデメリットメリットが予想されるか教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 0KG00
  • ベストアンサー率36% (334/913)
回答No.1

メリット 名前を統一するので、同じ項目のフィールド名を統一できる。 フィールド名をみただけで内容が想像できる デメリット どのテーブルの項目か、すぐに判断できない →A.NameID,B.NameIDというふうに修飾することで回避可能。Accessで生成されるSQLは通常この形。 とくにデメリットは感じません。というか、統一すべきだと思いますが。 リレーションは特に関係ないかと。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.4

同じ名前は良く使われます。用法を誤らなければ問題ありません。 もし、実際にNameIDをフィールド名に使用することを考えているならば、以下の点に注意する必要があります。 NameID は汎用性がありすぎますので <data domain name>ID にすることを勧めます。 ・AテーブルとBテーブルの内容が似ている場合、テーブルを結合できると勘違いする可能性がある。 ・AテーブルとBテーブルが他のキーで結合される場合、意味の違う同じフィールド名が複数登場するので判読しにくくなる。

G3MEN
質問者

お礼

みなさま,参考になりました。 ありがとうございました。 結論としては特に問題ないとのことですね。 むしろ普通という印象を受けました。 ありがとうございます。

すると、全ての回答が全文表示されます。
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

>同じフィールド名を使用することは好ましくないでしょうか? 別に普通です。 例えばAテーブルのNameIDはA0001の様にテキスト型でBテーブルのNameIDは1で数値型のようなデータ型が違うような使い方は好ましくありません。(通常はしませんが)後々リレーションしたりする必要が出た場合など変換した後にJOINしたりと不都合が出ます。 同じフィールド名で同じデータ型で揃えて別テーブルで使用するのは全然問題ありません。 リレーションを取らなくてはいけなくなった場合など同じ構成ならエラーなく直ぐに出来ます。

すると、全ての回答が全文表示されます。
  • nnfuji
  • ベストアンサー率28% (200/701)
回答No.2

複数のテーブルで同じフィールド名を使用するのは一般的に行われています。 この場合、大抵は検索キーだったり、リレーションキーだったりします。 データベース的にはメリットもデメリットもありません。 どちらかというと、そのDBを使用してプログラム/システムを作成する側の都合でどうでもしてよい部分です。 (つまり、データの目的がわかりやすいような名前を付ける。)

すると、全ての回答が全文表示されます。

関連するQ&A