
2.3. Триггеры и генераторы. Обеспечение ссылочной целостности.
Созданы следующие генераторы для поля ID в таблицах:
GEN_AVTORI_ID – для генерации ID авторов в таблице AVTORI (Авторы);
GEN_KNIGI_ID – для генерации ID читателей в таблице KNIGI (Книги);
GEN_IZDATELSTVA_ID - для генерации ID издателя в таблице IZDATELSTVA (Издательства);
GEN_GANRI_ID – для генерации ID книг в таблице GANRI (Жанры);
GEN_POST_ID – для генерации ID поставщиков в таблице POST (Контрагенты);
GEN_PRIHOD_ID – для генерации ID приходной накладной в таблице PRIHOD (Приход);
GEN_RASHOD_ID – для генерации ID расходной накладной в таблице RASHOD (Расход);
GEN_SKL_ID – для генерации ID книги на складе в таблице SKL (Склад);
GEN_SOD_PAS_ID – для генерации ID записи в расходной накладной в таблице SOD_PAS (Содержание расходной накладной);
GEN_SOD_PRI_ID – для генерации ID записи в приходной накладной в таблице SOD_ PRI (Содержание приходной накладной);
GEN_ZAK_ID для генерации ID заказа в таблице ZAK (Заказы поставщикам);
Данные генераторы ведут отсчет с 1 и с шагом в 1.
Также созданы триггеры:
AVTORI_BI – для записи ID авторов в таблице AVTORI (Авторы);
KNIGI_ BI – для записи ID читателей в таблице KNIGI (Книги);
IZDATELSTVA_BI - для записи ID издателя в таблице IZDATELSTVA (Издательства);
GANRI_ BI – для записи ID книг в таблице GANRI (Жанры);
POST_ BI – для записи ID поставщиков в таблице POST (Контрагенты);
PRIHOD_ BI – для записи ID приходной накладной в таблице PRIHOD (Приход);
RASHOD_ BI – для записи ID расходной накладной в таблице RASHOD (Расход);
SKL_ BI – для записи ID книги на складе в таблице SKL (Склад);
PAS_BI – для записи ID записи в расходной накладной в таблице SOD_PAS (Содержание расходной накладной);
SOD_PRI_ BI – для записи ID записи в приходной накладной в таблице SOD_ PRI (Содержание приходной накладной);
ZAK_ BI для записи ID заказа в таблице ZAK (Заказы поставщикам);
Разработка пользовательского интерфейса
Описание основных программных модулей
2.4. Запросы
В базе данных созданы следующие запросы:
- Формирование отчёта о продажах за определённый период: select s.ID as "Номер", po.naim as "Покупатель", r.DATA as "Дата покупки", k.NAIM as "Наименование издания", s.KOL as "Кол-во", s. ZEN as "Цена", s.Zen*s.Kol as "Сумма" from SOD_RAS s, RASHOD r, KNIGI k, post po where s.KOD_CHEK=r.ID and k.id=s.kod_kni and r.pok=po.id and r.data >= <начальная дата> and r.data <конечная дата>
- Вывод списка книг определённого года издания: select K.ID as "КОД КНИГИ", K.NAIM as "НАЗВАНИЕ ИЗДАНИЯ", A.FIO as "АВТОР", I.NAIM as "ИЗДАТЕЛЬСТВО", G.NAIM as "ЖАНР ИЗДАНИЯ", K.GOD_IZD AS "ГОД ИЗДАНИЯ" from AVTORI A, KNIGI K, IZDATELSTVA I, GANRI G WHERE K.KOD_GAN=G.ID AND K.KOD_AVT=A.ID AND K.KOD_IZD=I.ID and k.god_izd ='+fmKni.Edit1.Text
- Вывод приходной накладной: select s.ID as "Номер", k.naim as "Книга", s.KOL as "Кол-во", s.ZENA as "Цена", s.KOL*s.ZENA as "Сумма" from SOD_PRI s, PRIHOD p, KNIGI k where k.id=s.kod_kni and s.kod_pri=p.id and s.kod_pri='+IntToStr(r_id)