我正在尝试一个数据库问题,但是此时我陷入困境,可以说我有两个实体RP和FP。 RP的属性为A,B和C,其中A为主键。对于FP,属性为X,Y,Z主键X。

FP是依赖于RP的弱实体,因此在创建我的关系模式后,FP的主键是(A,X),而A是引用RP主键的外键,我的问题是FP的示例具有多个组成一个FP的A的值。

例如,FP'FP01'由RP'RP01'制成,而RP'RP02'..... Y和Z只是FP的描述。

我的元组看起来像这样...是重复的数据,因为两行都需要对同一FP进行相同的描述

| .... X .... | ..A .... | ........ Y ........ | ......... Z ....... |

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

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

我曾考虑过将A设为多值属性,但A是主键的一部分,我不确定是否可以针对此问题进行处理或纠正。我该如何处理?

最佳答案

如果RPFP之间的关系是一对多的,则可以。

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

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



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

关于mysql - 多值主键?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8712895/

10-16 15:40