プロが教えるわが家の防犯対策術!

一般論というか基本的な考え方として,
データベースの中にいくつかテーブルがあって,それぞれリレーション張られていなません。
このときに同じフィールド名を使用することは好ましくないでしょうか?


少し具体的に書くと
例えばアクセスで
DB1.MDBというデータベースの中に
Aテーブル,Bテーブル,Cテーブルとあったとして
Aテーブルの中でNameIDというフィールドを作ったとします。
次にBテーブルを作成していて,またNameIDというフィールド名を使うということです。


このようなデータベースは,
どんなデメリットメリットが予想されるか教えてください。
よろしくお願いします。

A 回答 (4件)

メリット


名前を統一するので、同じ項目のフィールド名を統一できる。
フィールド名をみただけで内容が想像できる

デメリット
どのテーブルの項目か、すぐに判断できない
→A.NameID,B.NameIDというふうに修飾することで回避可能。Accessで生成されるSQLは通常この形。

とくにデメリットは感じません。というか、統一すべきだと思いますが。
リレーションは特に関係ないかと。
    • good
    • 0

同じ名前は良く使われます。

用法を誤らなければ問題ありません。
もし、実際にNameIDをフィールド名に使用することを考えているならば、以下の点に注意する必要があります。
NameID は汎用性がありすぎますので <data domain name>ID にすることを勧めます。

・AテーブルとBテーブルの内容が似ている場合、テーブルを結合できると勘違いする可能性がある。

・AテーブルとBテーブルが他のキーで結合される場合、意味の違う同じフィールド名が複数登場するので判読しにくくなる。
    • good
    • 0
この回答へのお礼

みなさま,参考になりました。
ありがとうございました。

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

お礼日時:2005/12/26 20:20

>同じフィールド名を使用することは好ましくないでしょうか?


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

複数のテーブルで同じフィールド名を使用するのは一般的に行われています。



この場合、大抵は検索キーだったり、リレーションキーだったりします。

データベース的にはメリットもデメリットもありません。
どちらかというと、そのDBを使用してプログラム/システムを作成する側の都合でどうでもしてよい部分です。
(つまり、データの目的がわかりやすいような名前を付ける。)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す