• ベストアンサー

外部キーだけのテーブル(主キーがない?)

bin-chanの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

あまり具体的な例をあげることができませんが。 通常、RDBは「1:n」や「m:1」となります。 が、「m:n」を設ける必要がある場合、実際には「中間テーブル」を作成し、 「1:n」と「m:1」の関係を作成します。 このときの「中間テーブル」が、外部キーを持ち主キーが存在しない、では なかったかな?

puplix
質問者

お礼

最初この回答を読んだときなんのことかわからなかったのですが,皆さんの回答をあわせて読んでいくうちにわかってきました. どうもありがとうございました.

関連するQ&A

  • 外部参照してるキーを主キーにすることは可能?

    DB設計について質問なんですが、テーブル1のA列を主キーとし、テーブル2のA列から外部キーでA列を参照したとします。 この時、テーブル2のA列を主キーとして設定することは可能なんでしょうか。 (テーブル2の方で列Aと列Bを組み合わせて主キーにしたいのです。要は二列でデータがユニークになるように設計したい) 使用しているDBはPostgreSQLです。 以上、宜しくお願い致します。

  • 外部から取り込んだテーブルに主キーを設定するには

    外部から取り込んだテーブルに主キーを設定するには sql server 2000 のデータベースにsqlserver 2008 express editionをインストールしたPCで別のデータベースのテーブルをインポートウィザードにて取り込み、そのテーブルに主キーを設定しようと、新しいログイン名で-ログイン-セキュリティ-ユーザー-プロパティの画面でセキュリティ保護可能なリソースを選択し、オブジェクトの列の権限にて更新、選択、等許可に設定しても、テーブルの変更が(主キーの設定)ができません。 この変更は、もともと無理なことなのでしょうか。そうだとしたら他にテーブルの列設定を変更する方法はないのでしょうか どうかご教授お願いします。宜しくお願いします。 PC os XP pro (sql server 2008 express edition) サーバー WINDOWS 2000 server SQL server 2000

  •  テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUT

     テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUTER JOINで外部結合したテーブルが 読み取り専用になっていて、データの更新ができないのですが、更新出来る方法が解らずに、困っていま す。この結合したテーブルのデータを更新できるようにするにはどのようにすればよいのでしょうか、お助け 願います。 SQL SERVER 2008 EXEPRESS EDITION をインストールしたPCからSQL 2000 serverのデータベースに アクセスしています。

  • 外部キー

    アクセスのテーブルの主キーは 外部キーとも言うのですか?

  • 主キーが多ければ検索が速い?

    http://okwave.jp/qa/q7785075.html こちらの質問を見て思ったのですが 主キーがあれば検索が早くなるとの事ですが テーブルには複数の主キーが設定できますが 主キーが多ければ多いほど検索が早くなったり データベースとして最適になるのでしょうか?

  • Accessの主キーについて

    お願いいたします。 Accessの主キー設定について教えてください。 主キーの役割は、テーブルの中のレコードを区別 するための機能だと思いますが、 フィールドのデータ型をオートナンバー型にして おけば主キーの設定は必要ないのではないでしょう か? 主キーを設定する理由としては、参照整合性のため に行うという考え方で良いでしょうか? また、複数の主キーを設定するという場合のテーブ ル構成はどのような場合のシステムなのでしょうか? どうぞ教えてください。

  • phpmyadminの外部キー設定について

    phpmyadminでデータベースを作成しているのですが、外部キーを相互に参照し合っているテーブルがあります。 一方のテーブルにデータを入れようとすると、参照先の外部キーにそのデータはありません、とエラーが出るし、もう一方のテーブルにデータを入れようとしても同じエラーが出ます。 調べたところ、遅延制約というのがあるようですが、それをphpmyadminで設定する方法が分かりません。 sql文を直接入力するしかないのでしょうか。 設定の方法や、他の方法をご存知の方はぜひご教授ください。

  • 主キーって

    データベースにでてくる、『主キー』の概念が全く理解できません。 いろんなところでいろんな説明をみるのですが、何故これが必要なのか、これはいったいなんなのか、とてもわかりやすく教えていただけるかたいましたらお願いします。

  • MDB内既存テーブルに主キーのフィールド追加は可能か?

    DAOでMDBにアクセスするシステムなのですが、 テーブル仕様変更に伴い、既存のテーブルに新規に主キーとなるフィールドを追加します。 当テーブルはすでに主キーは複数存在しています。 現在は CreateIndex("PrimaryKey")を行ったのですが、 「既に主キーは既に存在しています」と表示されてしまい、異常終了をしてしまいます。 単にフィールド追加することは容易なのですが、主キーとなると、だめみたいです。 この場合は、どのようにすれば良いのでしょうか? 大変申し訳ございません。 ご教授よろしくお願い致します。

  • 主キーの値を自動更新することはできますか

    Accessで、あるテーブルの主キーとなる列から、一対多の関係で別のテーブルがあります。 テーブル1 主キー a01  あああ a02  いいい a03  ううう … テーブル2 主キー  b01   a01 かかか b02   a05 ききき b03  a01 くくく … こういうイメージなのですが、あとから「a01」等を、全部「g01」などのように変えて、なおかつテーブル2のデータを更新することはできるでしょうか。