Автор Тема: PostgreSQL FOREIGN KEY + array  (Прочитано 3875 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
PostgreSQL FOREIGN KEY + array
« : 23 Марта 2005, 14:06:30 »
Есть таблица категорий и талица фирм

CREATE TABLE "public"."firm_category" (
  "id" SERIAL,
  "name" VARCHAR(300) NOT NULL,
  "note" VARCHAR(150),
  CONSTRAINT "firm_category_pkey" PRIMARY KEY("id")
) WITHOUT OIDS;

CREATE TABLE "public"."firm_main" (
  "id" SERIAL,
  "category" INTEGER[],
  "name" VARCHAR(250) NOT NULL,
  "note" TEXT,
  CONSTRAINT "firm_main_pkey" PRIMARY KEY("id"),
) WITHOUT OIDS;

Одна фирма может относится к нескольким категориям поэтому поле category соответсвующей таблицы - массив

Так вот хотел прикрутить к этой (фирм) таблице внешний ключ, что бы автоматически обновлялись (удалялись) элементы массива.

Естественно при создании FOREIGN KEY выдало ошибку несоответсвие типов.

Возможно ли использовать внешний ключ, или же прийдется прикручивать Триггер?

И еще, существенна потеря производительности при выборке данных
...
firm_category.id = ANY (firm_main.category);
...

Если в обоих таблицах будет не более 4000-5000 записей
Или же все-таки использовать 3-ю таблицу для определения соотвествия и установить внешние ключи?

Оффлайн commander

  • Developer
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1298
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.webtips.ru
PostgreSQL FOREIGN KEY + array
« Ответ #1 : 23 Марта 2005, 16:05:05 »
Цитировать
Или же все-таки использовать 3-ю таблицу для определения соотвествия и установить внешние ключи?

использовать ...
And no religion too...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28