В начало

Контроль расхода по остатку

 

            Есть две таблицы: основная «Sklad» и подчиненная «Prodaja».

            Нужно в СУБД «Interbase 6.5» обеспечить контроль расхода товара так, чтобы он не превышал остаток товара на складе.

            Запустим и быстренько создадим необходимые таблицы. Первую таблицу «Sklad» можно создать SQL-запросом в утилите «Interactive SQL».

CREATE TABLE Sklad (

Tovar VARCHAR(20) NOT NULL,

Ostatok INTEGER,

PRIMARY KEY (Tovar));

COMMIT;

            Слегка заполним таблицу «Sklad», чтобы она не выглядела пустой. Заполнить ее можно в «IBConsole», если выбрать ее в дереве «Interbase ServersLocal ServerDatabasesTestSklad», а далее в свойствах таблицы «Sklad» выбрать закладку «Data»,  там и заполнить.

Рис. 1. Таблица «Sklad»

CREATE TABLE Prodaja (

Data_Prodaji DATE,

Tovar VARCHAR(20) NOT NULL,

Kolichestvo INTEGER,

FOREIGN KEY (Tovar) REFERENCES Sklad(Tovar),

CONSTRAINT Kontrol_Rashoda

CHECK (Kolichestvo <=

(SELECT Sklad.Ostatok FROM Sklad

WHERE Sklad.Tovar = Prodaja.Tovar)));

COMMIT;

 

            При этом не удастся продать имеющийся товар количеством большим, чем имеется остаток на складе.

Рис. 2. Таблица «Prodaja»