Вопрос 1.
Что произойдет в результате выполнения скрипта:
CREATE TABLE A (
a1 INT, a2 VARCHAR, a3 NUMERIC, UNIQUE (a1, a2))
CREATE TABLE B (
b1 VARCHAR, b2 NUMERIC, b3 INT,
FOREIGN KEY (b1, b2) REFERENCES A(a2,a3))
- Скрипт не выполнится, потому что внешний ключ не может быть составным
- Скрипт не выполнится, потому что ссылочные атрибуты не являются ключом
- Скрипт не выполнится, потому что имена ссылающихся и ссылочных атрибутов разные
- Скрипт выполнится без ошибок
Вопрос 2.
Вы делаете связь многие-ко-многим между товарами и поставщиками у которой есть собственный атрибут, например, цена данного товара у данного поставщика. Вы хотите чтоб цена была уникальна для пары (товар, поставщик). Чего не хватает в этом операторе?
CREATE TABLE Goods_Supplier(
goods_id INT FOREIGN KEY REFERECES Goods,
supplier_id INT FOREIGN KEY REFERENCES Supplier,
price NUMERIC (10, 2) CHECK (price >= 0))
CREATE TABLE Goods_Supplier(
goods_id INT FOREIGN KEY REFERECES Goods,
supplier_id INT FOREIGN KEY REFERENCES Supplier,
price NUMERIC (10, 2) CHECK (price >= 0))
- Да вроде всё на месте
- Ограничения UNIQUE для цены
- Ограничения UNIQUE для каждого из внешних ключей
- Ограничения UNIQUE для пары внешних ключей
- Ограничения UNIQUE для всей тройки атрибутов
Слайды
Комментариев нет:
Отправить комментарий