Я пытаюсь добавить ограничение внешнего ключа в таблицу в моей базе данных PostgreSQL 8.4, но оно терпит неудачу, поскольку поле назначения, хотя оно является частью первичного ключа из нескольких столбцов, само по себе не является уникальным.
База данных имеет следующую структуру:
Таблица 1 (имена основных идентификаторов):
PrimaryType, Name
[Primary key = "PrimaryType"]
Таблица 2 (имена дочерних идентификаторов для каждого типа первичного идентификатора):
PrimaryType, SubType, Name
[Primary key = "PrimaryType, SubType"]
[Foreign key = "Table2.PrimaryType = Table1.PrimaryType"]
Таблица 3 (журналы, которые включают основной и дочерний ID):
PrimaryType, SubType, DATA1, DATA2, ..., DATAN
[Foreign key = "Table3.PrimaryType = Table1.PrimaryType" AND "Table3.SubType = Table2.SubType"]
Очевидно, что вторая часть внешнего ключа для таблицы 3 является причиной проблемы. Мне просто нужно убедиться, что пара ID основного и подтипа в журнале является допустимой комбинацией.
Заранее спасибо.