多值主键?

时间:2012-01-03 13:19:31

标签: mysql

我正在尝试一个数据库问题但是我在这一点上遇到了困难,让我说我有两个实体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 .... | .... ....甲| ........ý........ | ........ .Z ........ |

| .FP01 |。.RP01 |。descrition1 |说明2 |

| .FP01 |。.RP02 |。descrition1 |内容描述|

我正在考虑将A设为多值属性,但A是主键的一部分,我不确定是否可以做到或纠正这个问题。我该如何处理?

1 个答案:

答案 0 :(得分:0)

如果RPFP之间的关系是一对多关系,那么就可以了。

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

FP(A,X)是唯一的(它是PRIMARY KEY)所以没有问题。


如果属性YZ仅取决于X而不取决于整个主键(A,X),则表格未规范化。在这种情况下,您需要将FP表拆分为两个表。