если у меня есть сложный первичный ключ, возможно ли создать внешний ключ только для одного его столбца? - PullRequest
1 голос
/ 19 августа 2011

У меня есть это:

ID1 INTEGER PRI
ID2 INTEGER PRI
NAME VARCHAR

Теперь мне нужно:

ID1_REF INTEGER REFERENCE TO ID1
DESCRIPTION VARCHAR

так, один столбец относится к одному столбцу первичного ключа, а не к 2 столбцу. Возможно ли это даже в реляционных базах данных?

Ответы [ 2 ]

1 голос
/ 19 августа 2011

Нет, ты не можешь. Внешний ключ должен ссылаться либо на первичный ключ, либо на другой суперключ (набор атрибутов / столбцов, однозначно идентифицирующий строку в этой таблице, независимо от того, является ли это фактическим объявленным первичным ключом) в ссылочной таблице. Стоит также прочитать статью Википедии .

0 голосов
/ 19 августа 2011

Технически вы можете делать все, что захотите. Но теоретически это нарушает основную концепцию первичных и внешних ключей. На самом деле это просто вопрос условий. Я не уверен, можно ли назвать ключ в вашем примере внешним ключом. Может быть, мы можем назвать это частичным внешним ключом или как-то так.

...