@fachel32

Как сделать ссылку на составной ключ в postgresql?

Есть 2 таблицы :
CREATE TABLE APARTMENT( --НОМЕР
number_of_apartment INTEGER ,
housing_name CHARACTER VARYING(30) ,
PRIMARY KEY(housing_name, number_of_apartment)
);

CREATE TABLE ACCOMMODATION( --ПРОЖИВАНИЕ
number_of_apartment INTEGER ,
housing_name CHARACTER VARYING(30),
);

как сделать ,чтобы в ACCOMMODATION были внешние ключи housing_name, number_of_apartment ,ссылаемые на поля составного ключа в APARTMENT ?
  • Вопрос задан
  • 2495 просмотров
Пригласить эксперта
Ответы на вопрос 1
Athanor
@Athanor
Лайк + Решение: не жмись, нажми
Это сделать довольно легко:

CREATE TABLE ACCOMMODATION( --ПРОЖИВАНИЕ
number_of_apartment INTEGER ,
housing_name CHARACTER VARYING(30),
FOREIGN KEY (number_of_apartment, housing_name) REFERENCES APARTMENT (number_of_apartment, housing_name)
);

Однако, замечу, что лучшей практикой было бы сделать простой первичный ключ в APARTMENT и сослаться на него, а уникальность можно контролировать на уровне таблицы APARTMENT через unique-индекс.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы