2012-01-03 19 views
1

私はデータベースの質問を試みていますが、私はこの時点で立ち往生しています。RPとFPの2つのエンティティがあります。 RPの属性はA、B、Cで、Aは主キーです。 FPの場合、属性はX、Y、Zの主キーXです。複数値の主キー?

FPはRPに依存する弱いエンティティです。したがって、リレーショナルスキーマを作成した後、FPの主キーは(A、X)キーのRPの主キーを参照して、私の問題は、FPの例は1つのFPを構成する複数の値を持っているということです。

例FP 'FP01'はRP 'RP01'とRP 'RP02'から作成されています..... YとZはFPの説明です。 .... X .... | | ....両方の行が同じFP

に同じ記述を実行する必要がありますよう

私のタプルが、この...重複したデータであるように見えますA .... | ........ Y ........ | ......... Z ........ |

| .FP01 | | .RP01。| descrition1 | description2 |

| .FP01。| .RP02。| descrition1 | description2 |

私はAを多値属性にすることを考えていましたが、Aは主キーの一部であり、そのことが可能かどうかはわかりません。これをどうすれば処理できますか?

+0

FPの主キーはXまたは(A、X)ですか? – Matt

+0

これは宿題に関する質問であれば、そのようにタグ付けできますか? – ConcernedOfTunbridgeWells

+0

ある時点で、 'FP'の主キーは' X'だと言います。別の例では、それは '(A、X)'です。どのステートメントが正しいですか? –

答えて

0

RPFPの関係が1対多である場合、これは問題ありません。

FP.Aは一意でないとFOREIGN KEYFP(A,X)

RP(A)にユニークである(それは PRIMARY KEYだ)ので、全く問題はありません。属性 YZだけではなく全体の主キー (A,X)Xに依存している場合かかわら


テーブルは正規化されていません。その場合、FPテーブルを2つのテーブルに分割する必要があります。

+0

FPをFPとFP_Descritionに分割し、FP_DesriptionのFD_IDを外部キーとして使用してFPのXを参照する場合は、すべてをカバーする必要がありますか? – user1127829

+0

それから(私が正しく理解していれば)結合テーブル 'JOIN_RP_FP(A、X) 'を持つ' RP(A、B、C) 'と' FP(X、Y、Z) '表はOKです。 –