我正在尝试一个数据库问题但是我在这一点上遇到了困难,让我说我有两个实体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是主键的一部分,我不确定是否可以做到或纠正这个问题。我该如何处理?
答案 0 :(得分:0)
如果RP
和FP
之间的关系是一对多关系,那么就可以了。
FP.A
不是唯一的,FOREIGN KEY
到RP(A)
FP(A,X)
是唯一的(它是PRIMARY KEY
)所以没有问题。
如果属性Y
和Z
仅取决于X
而不取决于整个主键(A,X)
,则表格未规范化。在这种情况下,您需要将FP
表拆分为两个表。