Установка связи между таблицами

Мне нужно связать таблицу suppliers(поставщики) с goods(товары) связью один ко многим. Suppliers главная таблица, goods - дочерняя. Связывать нужно табл. Suppliers ключевым полем sups_c_suplr с полем gds_c_suplr табл.goods. Как связать эти таблицы по указанным полям? Что для этого нужно создать и сделать? Можно ли в PostgreSQL посмотреть потом связи между таблицами в графическом виде и как?

Я делал так:
1) Создал индекс для поля gds_c_suplr.
2) Нажав по таблице suppliers правой кнопкой я выбрал создать вторичный индекс (Foreign Key).
3) В закладке Properties в поле References(ссылка) выбрал таблицу goods.
4) В закладке Columns в поле Local Column выбрал sups_c_suplr.
5) В поле Referencing выбрал gds_c_suplr.
6) Нажал кнопку Add.
7) И мне выводится ошибка: "ERROR: there is no unique constraint matching given keys for referenced table 'goods' "

Если я выше описанным способом свяжу два ключевых поля таблиц, то ошибка не вылетает.
Скажите пожалуйста что я сделал не так?

Описание таблиц:

CREATE TABLE suppliers
(
sups_c_suplr integer NOT NULL DEFAULT 0, -- Код поставщика
sups_surname character(10) NOT NULL,
sups_first_name character(10) NOT NULL,
sups_firm character(15) NOT NULL,
sups_telephone character(15) NOT NULL,
sups_passport_num character(8) NOT NULL,
sups_ident_num character(10) NOT NULL,
CONSTRAINT sups_c_suplr PRIMARY KEY (sups_c_suplr),
CONSTRAINT suppliers_sups_c_suplr_fkey FOREIGN KEY (sups_c_suplr)
REFERENCES goods (gds_c_goods) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);

CREATE TABLE goods
(
gds_c_goods integer NOT NULL DEFAULT 0,
gds_manufact character(15),
gds_name character(30),
gds_price numeric,
gds_c_suplr integer,
CONSTRAINT gds_c_goods PRIMARY KEY (gds_c_goods)
)
WITH (
OIDS=FALSE
);
ALTER TABLE goods OWNER TO postgres;

-- Index: ind_gds_c_suplr

-- DROP INDEX ind_gds_c_suplr;

CREATE INDEX ind_gds_c_suplr
ON goods
USING btree
(gds_c_suplr);

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Прочите документацию про

Прочите документацию про внешние ключи:
http://postgresql.ru.net/manual/ddl-constraints.html#DDL-CONSTRAINTS-FK
если после прочтения останутся вопросы, задавайте

Статья помогла! Спасибо!

Статья помогла! Спасибо!

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023