@WithProg

Как создать условный Foreign key в postgres?

Нужно делать условный внешний ключ в postgresql, который ссылается к нескольким таблицам.
Допустим у меня есть таблицы t1, t2, t3 и t4. Хочу делать так, чтобы в зависимости от t4.name
поле my_foreignKey ссылался на таблицах t1, t2 и t3.
А если такое делать не возможно в postgres, есть ли способы реализовать такую структуру?
Благодарю за любую поддержку!
CREATE TABLE t1(
id integer prymary key,
type VARCHAR(20) unique not null
);
CREATE TABLE t2(
id integer prymary key,
type VARCHAR(20) 
);
CREATE TABLE t3(
id integer prymary key,
name VARCHAR(20) 
);
CREATE TABLE t4(
id integer prymary key,
name VARCHAR(20) not null,
my_forignkey integer
);
  • Вопрос задан
  • 395 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vapaamies
@Vapaamies
В творческом кризисе
Вы уверены, что «условный внешний ключ» — это реляционная модель? Какой нормальной форме он соответствует?

На практике обычно хранят значения t1, t2 и t3 в одной таблице с составным ключом, если требуется. Для физического разделения данных таблицы используют секционирование.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы