2009-07-26 15 views
0

私のメモを読みました。ERDでプライマリと外部のキーを取得するには

私の論理図

alt text http://files.getdropbox.com/u/175564/db/db-11.png

このテーブルには、私は、テーブルQuestionで唯一の外部キーを持って、次の物理的なERD

alt text http://files.getdropbox.com/u/175564/db/db-22.png

に沿ったものでなければなりません。私は回答テーブルにテーブル質問 - タグ - 外部参照、AND question-idanswer

  • すべきquestion-idquestion-tagを知っていただきたいと思い

    も、外部キーも?

    まずERD:

答えて

1

マシ - 論理モデルは通常、データ型(文字列、int型など)を含んでいません属性(物理モデル内の列になる)がオプションかどうかを示します(ヌルでもなくてもかまいません)。

つまり、QUESTION-IDとQUESTION-TAG列はQUESTION-TAG-XREF表の外部キーになります。ここで問題-TAG-XREFの物理的ビューは次のとおり

QUESTION-TAGS-XREF

  • QUESTION-ID(PK質問表とFKの関係)
  • QUESTION-TAG-CODE(PK 、QUESTION-TAGテーブルとのfk関係)

両方の列は、特定の質問に重複タグを付けることができないようにするためのものです。

QUESTION-IDがQUESTIONテーブルを参照して、ANSWERSテーブルの外部キーになることは間違いありません。

+0

「QUESTION-TAG-CODE」とは何ですか? ---質問タグのために余分なテーブルを用意する必要があるということですか? –

+1

はい。 QUESTION-TAG-XREFには、外部キーのみが含まれています。 QUESTION-TAGコード化された値を格納するテーブルが必要です。 –

+0

あなたの答えを理解する方法を示すために写真を更新しました。 –

1

両方ERDSを見ると、ここで私は場所に置く したい外部キーです 質問TAG-外部参照(質問-idは)question-(質問への参照する必要がありますid)。 回答(question-id)は質問(question-id)を参照する必要があります。 質問(ユーザーID)はユーザー(ユーザーID)を参照する必要があります。

第2 ERD: Question-Tag-xref(question-id)はQuestion(question-id)を参照する必要があります。 回答(question-id)は質問(question-id)を参照する必要があります。 質問(user-id)はuser-info(user-id)を参照する必要があります。

Questionテーブルには1つの外部キーしかありません。

質問の答え: Question-tag-xrefのquestion-idカラムにQuestion(question-id)への外部キー参照が必要です。答えテーブルの 列の質問-idは、質問への外部キー参照を持つべきである(質問-ID)

K

+0

私の質問の編集をご覧ください。私はあなたの答えを理解する方法を示すために写真を更新しました。 –

+0

論理的および物理的ERDモデルは同じモデルを表します。ここでコメントするERDは1つだけです。論理ERDにはデータ型情報は含まれませんが、表属性がオプションであるかどうかを示します(nullまたは不可能)。論理モデル内の属性は、物理のテーブル列に変換されますが、必ずしも1対1の関係ではありません。 –

+0

@rexem: 'null'または' not'を追加するべき例を教えてください。 –

関連する問題