• ベストアンサー

主キーの位置

こんにちわ。 MDBでテーブル設計するときに, 主キーとなる項目は,テーブルのどの位置に定義しても 影響はないのでしょうか? やはり先頭が一般的かと思われますが, 最後尾に定義すると何か不都合などあるでしょうか? なおORACLEではどうでしょうか? 教えてください。お願いします。

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

  • ベストアンサー
回答No.2

列の順番や主キー列の位置はパフォーマンスに影響しません。 あるとすれば、クエリのデザイナなどで視覚的にテーブルを表示する際に、主キー列が上のほうにあれば隠れない程度です。 とは言え、いきなり Access のテーブルデザイナで作業を始める行き当たりばったりの設計ではなく、一度机上やツールなどで設計を行うような開発手法では、どうしたって(視覚てきな理由や意思疎通などの理由で)重要な列を上のほうに持っていったりするでしょうね。

tatsurou
質問者

お礼

temtecomai2さん そうですよね。通常は先頭が適切だと思います。 回答ありがとうございました。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

AccessでもOracleでも主キーはレコード(行)を識別するために使用する列かまたは列の組み合わせであることの宣言で一意性の保証とNULL値不可の制限が設定されるものを主キーとして設定できるとしかありません。先頭ではないフィールドにも設定できます。 しかしテーブルを構築する際に正規化してフィールドを配列してしまうので通常はありません。通常は先頭に持って行きます。 Oracleではcreate table時にフィールド(項目)にprimary key,とすればprimary key定義が作られシステムが主キー、一意キーに対して索引を自動で創成します。基本的にcreate indexコマンドで索引を独自に作る必要はありません。 主キー以外にいくつでもインデックスキーを作成できるので最小限であり高速アクセスとなる索引を設計するのが重要です。

tatsurou
質問者

お礼

O_cyanさん 大変丁寧に教えて頂きまして, ありがとうございました。 参考にさせて頂きます。

関連するQ&A