2012-01-03 6 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 .... | .... .... | ........ Y ........ | ......... Z ........ |

| .FP01. | .RP01. | Descrition1 | description2 |

| .FP01. | .RP02. | Descrition1 | description2 |

Я думал о создании многозначного атрибута, но А является частью первичного ключа, и я не уверен, что это можно сделать или исправить в этом отношении. Как я могу справиться с этим?

+0

Первичный ключ для FP - X или (A, X)? – Matt

+0

Если это вопрос домашней работы, можете ли вы пометить его как таковой? – ConcernedOfTunbridgeWells

+0

В одном пункте вы говорите, что Первичный ключ 'FP' -' X'. В другом вы говорите, что это '(A, X)'. Какое утверждение является верным? –

ответ

0

Если отношение между RP и FP является взаимно-однозначным, то все в порядке.

FP.A не является уникальным и является FOREIGN KEY к RP(A)

FP(A,X) уникален (это PRIMARY KEY), поэтому нет никаких проблем.


Таблицы не нормализовалась, хотя, если атрибуты Y и Z зависят от X только и не на всем первичном ключе (A,X). В этом случае вам необходимо разбить таблицу FP на две таблицы.

+0

Итак, если бы я хотел разделить FP на FP & FP_Descrition и использовать и атрибут FD_ID в FP_Desription в качестве внешнего ключа для ссылки X в FP, я должен все покрыть? – user1127829

+0

Тогда (если я правильно понимаю), таблицы «RP (A, B, C)» и «FP (X, Y, Z)» с таблицей объединения 'JOIN_RP_FP (A, X)' будут в порядке. –

Смежные вопросы