Альтернативный вариант создания Primary Key

Часто бывают таблицы, где поле первичного ключа участвует в других, составных индексах.

Обычно в таких случаях создаётся уникальный индекс первичного ключа и составной пользовательский индекс с этим же полем.

Можно сэкономить на индексах и создать ограничение первичного ключа на основе составного индекса, причём индекс может быть объявлен и неуникальным, хотя чисто по своей сути он должен быть уникальным.

Пример.

CREATE TABLE a (b NUMBER, c NUMBER);

CREATE UNIQUE INDEX a#b#c ON a (b,c);

ALTER TABLE a ADD (CONSTRAINT a_pk PRIMARY KEY (b));

Первичный ключ является полнофункциональным, т.е. на него можно , например ссылаться:

CREATE TABLE d (b NUMBER);

ALTER TABLE d ADD (CONSTRAINT d_fk FOREIGN KEY (b) REFERENCES a (b);


Хостинг от uCoz