2012-01-03 70 views
1

我正在嘗試數據庫的問題,但我在這一點卡住,可以說我有兩個實體RP和FP。 RP的屬性是A,B和C,A是主鍵。對於FP,屬性是X,Y,Z主鍵X.多值主鍵?

FP是弱實體,它依賴於RP,所以在創建我的關係模式後,FP的主鍵是(A,X),A是外鍵鍵引用RP的主鍵,我的問題是FP的例子有多個A組成一個FP的值。例如,FP'FP01'由RP'RP01'和RP'RP02'組成....... Y和Z只是FP的描述。

我的元組看起來就像這樣......這是重複的數據,兩行需要攜帶相同的描述爲同FP

| .... X .... | ....一個.... | ........Ÿ........ | .........ž........ |

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

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

我正在考慮讓A成爲多值屬性,但A是主鍵的一部分,我不確定是否可以做或糾正這個問題。我該如何處理?

+0

FP的主鍵是X或(A,X)? – Matt 2012-01-03 13:22:59

+0

如果這是一個家庭作業問題,你可以給它加標籤嗎? – ConcernedOfTunbridgeWells 2012-01-03 13:25:35

+0

有一點你說'FP'的主鍵是'X'。在另一個你說的是'(A,X)'。哪一種說法是正確的? – 2012-01-03 13:28:58

回答

0

如果RPFP之間的關係是一對多關係,那麼這是OK的。

FP.A不是唯一的,是一個FOREIGN KEYRP(A)

FP(A,X)是唯一的(它是PRIMARY KEY),所以沒有問題。


的表不歸但如果屬性YZ取決於X,而不是對整個主鍵(A,X)。在這種情況下,您需要將FP表分成兩個表。

+0

因此,如果我將FP分解爲FP和FP_Descrition,並將FP_Desription中的FD_ID用作外鍵來引用FP中的X,那麼我應該覆蓋所有內容? – user1127829 2012-01-03 14:09:53

+0

然後(如果我理解正確的話),使用連接表「JOIN_RP_FP(A,X)」的表'RP(A,B,C)'和'FP(X,Y,Z)'可以。 – 2012-01-03 23:21:01