[ База даних велосипедного магазину ] |
Склад
Назва (в базі) | Назва (переклад) | Опис |
Код товару Код фірми Код персон Код типу операції Ціна Дата Кількість | KOD_TOVARA KOD_FIRMI KOD_PERSON KOD_TIPA_OPERAZII ZENA DATA KOLICHESTVO | Код товару в таблиці Tovar Код фірми в таблиці Firmi Код персони в таблиці Personal Код типу операції в таблиці Tipi _ operazii Закупівельна ціна Дата Кількість товару бере участь в операції |
Товар
Назва (в базі) | Назва (переклад) | Опис |
Код Код типу товару Назва | KOD KOD_TIPA_TOVARA NAZVANIE | Унікальний індентіфікатор товару Код товару в таблиці Tipi _ tovarov Назва товару |
Типи товарів
Назва (в базі) | Назва (переклад) | Опис |
Код Назва Код фірми Код типу товару | KOD NAZVANIE KOD_FIRMI KOD_TIPA_TOVARA | Унікальний індентіфікатор типу товару Назва типу товару Код фірми виробника в таблиці Firmi Код батьківського типу товарів в таблиці Tipi _ tovarov |
Фірми
Назва (в базі) | Назва (переклад) | Опис |
Код Назва Адреса Телефон Код типу фірми | KOD NAZVANIE ADRES TELEFON KOD_TIPA_FIRMI | Унікальний індентіфікатор типу фірми Назва фірми Адреса Телефон Код типу фірми в таблиці Tipi _ firm |
Технічні характеристики
Назва (в базі) | Назва (переклад) | Опис |
Код товару Код властивості Значення | KOD_TOVARA KOD_SVOISTVA ZNACHENIE | Код товару в таблиці Tovar Код властивості в таблиці Svoistva Значення характеристики |
Властивості
Назва (в базі)
123 - Primary key (первинний ключ) 123 - Foreign key (зв'язок) 123 - Uniqe (унікальний)
create table Professii (KOD NUMBER (5) PRIMARY KEY, NAZVANIE VARCHAR2 (30) UNIQUE ); create table Personal (KOD NUMBER (5) PRIMARY KEY, FIO VARCHAR2 (50), TELEFON VARCHAR2 (15), BIRTHSDAY DATE, ADRES VARCHAR2 (30), POL NUMBER (1), KOD_PROFESSII NUMBER (5), UNIQUE (FIO, BIRTHSDAY), FOREIGN KEY KOD_PROFESSII REFERENCES PROFESSII KOD ); create table Svoistva (KOD NUMBER (5) PRIMARY KEY, NAZVANIE VARCHAR2 (30), EDINIZI IZMERENIA VARCHAR2 (10) ); create table Texnicheskie_xarakteristiki ( KOD_TOVARA NUMBER (5), KOD_SVOISTVA NUMBER (5), ZNACHENIE NUMBER (5), FOREIGN KEY KOD_TOVARA REFERENCES TOVARI KOD, FOREIGN KEY KOD_SVOISTVA REFERENCES SVOISTVA KOD ); create table Tipi_firm (KOD NUMBER (5) PRIMARY KEY, NAZVANIE VARCHAR2 (30) UNIQUE ); create table Tipi_operazii (KOD NUMBER (5) PRIMARY KEY, NAZVANIE VARCHAR2 (30) UNIQUE ); create table Firmi (KOD NUMBER (5) PRIMARY KEY, NAZVANIE VARCHAR2 (30) UNIQUE, ADRES VARCHAR2 (30), TELEFON VARCHAR2 (15), KOD_TIPA_FIRMI NUMBER (5), FOREIGN KEY KOD_TIPA_FIRMI REFERENCES TIPI_FIRM KOD ); create table Tipi_tovarov (KOD NUMBER (5) PRIMARY KEY, NAZVANIE VARCHAR2 (30) UNIQUE, KOD_FIRMI NUMBER (5), KOD_TIPA_TOVARA NUMBER (5), FOREIGN KEY KOD_FIRMI REFERENCES FIRMI KOD, FOREIGN KEY KOD_TIPA_TOVARA REFERENCES TIPI_TOVAROV KOD ); create table Tovari (KOD NUMBER (5) PRIMARY KEY, KOD_TIPA_TOVARA NUMBER (5), NAZVANIE VARCHAR2 (30), UNIQUE (KOD_TIPA_TOVARA, NAZVANIE), FOREIGN KEY KOD_TIPA_TOVARA REFERENCES TIPI_TOVAROV KOD ); create table Sklad ( KOD_TOVARA NUMBER (5), KOD_FIRMI NUMBER (5), KOD_PERSON NUMBER (5), KOD_TIPA_OPERAZII NUMBER (5), ZENA NUMBER (5), DATA DATE, KOLICHESTVO NUMBER (3), FOREIGN KEY KOD_TOVARA REFERENCES TOVARI KOD, FOREIGN KEY KOD_FIRMI REFERENCES FIRMI KOD, FOREIGN KEY KOD_PERSON REFERENCES PERSONAL KOD, FOREIGN KEY KOD_TIPA_OPERAZII REFERENCES TIPI_OPERAZII KOD );
CREATE SEQUENCE "SEQPERSONAL" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE; CREATE SEQUENCE "SEQFIRMI" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE; CREATE SEQUENCE "SEQTIPI_TOVAROV" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE; CREATE SEQUENCE "SEQTOVARI" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE;
CREATE OR REPLACE TRIGGER INSERT_IN_PERSONAL BEFORE INSERT ON PERSONAL FOR EACH ROW BEGIN SELECT SEQPERSONAL.NEXTVAL INTO: new.KOD FROM DUAL; END; / CREATE OR REPLACE TRIGGER INSERT_IN_FIRMI BEFORE INSERT ON FIRMI FOR EACH ROW BEGIN SELECT SEQFIRMI.NEXTVAL INTO: new.KOD FROM DUAL; END; / CREATE OR REPLACE TRIGGER INSERT_IN_TIPI_TOVAROV BEFORE INSERT ON TIPI_TOVAROV FOR EACH ROW BEGIN SELECT SEQTIPI_TOVAROV.NEXTVAL INTO: new.KOD FROM DUAL; END; / CREATE OR REPLACE TRIGGER INSERT_IN_TOVARI BEFORE INSERT ON TOVARI FOR EACH ROW BEGIN SELECT SEQTOVARI.NEXTVAL INTO: new.KOD FROM DUAL; END; /
CREATE OR REPLACE FUNCTION Updater (NUMTOVARA Number) IS Result Number BEGIN RETURN (SELECT SUM (KOLICHESTVO) FROM SKLAD WHERE KOD_TOVARA = NUMTOVARA AND KODTIPAOPERAZII = 1) - (SELECT SUM (KOLICHESTVO) FROM SKLAD WHERE KOD_TOVARA = NUMTOVARA AND KODTIPAOPERAZII = 2) END
INSERT INTO PROFESSII (KOD, NAZVANIE) VALUES (1, 'ПРОДАВЕЦЬ'); INSERT INTO PROFESSII (KOD, NAZVANIE) VALUES (2, 'КАСИР'); INSERT INTO PROFESSII (KOD, NAZVANIE) VALUES (3, 'МЕНЕДЖЕР'); INSERT INTO PROFESSII (KOD, NAZVANIE) VALUES (4, 'ДИРЕКТОР'); INSERT INTO PERSONAL (FIO, TELEFON, ADRES, BIRTHDAY, POL, KOD_PROFESSII) VALUES ('КУПРІЯНОВ АНДРІЙ МИХАЙЛОВИЧ ', '88127567432', 'СПб КІРОВА 37 16 ', SYSDATE, 1,1); INSERT INTO PERSONAL (FIO, TELEFON, ADRES, BIRTHDAY, POL, KOD_PROFESSII) VALUES ('КОВАЛЬОВ ІЛЛЯ СЕРГІЙОВИЧ ', '88128567432', 'СПб МАРАТ 38 14 ', SYSDATE, 1,2); INSERT INTO PERSONAL (FIO, TELEFON, ADRES, BIRTHDAY, POL, KOD_PROFESSII) VALUES ('ПОЛИВЯННИЙ АРТЕМ ВІКТОРОВИЧ ', '88128967432', 'СПб СВІТУ травня 1912 ', SYSDATE, 1,3); INSERT INTO PERSONAL (FIO, TELEFON, ADRES, BIRTHDAY, POL, KOD_PROFESSII) VALUES ('ПОЛИВЯННАЯ ДАР'Я ВІКТОРІВНА ', '88127417432', 'СПб СВІТУ травня 1912 ', SYSDATE, 2,4); INSERT INTO SVOISTVA (KOD, NAZVANIE, EDINIZI_IZMERENIA) VALUES (1, 'РОЗМІР ВЗУТТЯ ',' РОЗМІР '); INSERT INTO SVOISTVA (KOD, NAZVANIE, EDINIZI_IZMERENIA) VALUES (2, 'РОЗМІР РАМИ ',' Дюйми '); INSERT INTO SVOISTVA (KOD, NAZVANIE, EDINIZI_IZMERENIA) VALUES (3, 'КОЛ - ВО ЛАНОК ',' ЛАНКУ '); INSERT INTO TIPI_FIRM (KOD, NAZVANIE) VALUES (1, 'ПОСТАЧАЛЬНИК'); INSERT INTO TIPI_FIRM (KOD, NAZVANIE) VALUES (2, 'ВИРОБНИК'); INSERT INTO TIPI_OPERAZII (KOD, NAZVANIE) VALUES (1, 'ПАРАФІЯ'); INSERT INTO TIPI_OPERAZII (KOD, NAZVANIE) VALUES (2, 'ВИТРАТА'); INSERT INTO FIRMI (NAZVANIE, ADRES, TELEFON, KOD_TIPA_FIRMI) VALUES ('SRAM', 'МОСКВА Тушинський 40 ', '84956543211', 2); INSERT INTO FIRMI (NAZVANIE, ADRES, TELEFON, KOD_TIPA_FIRMI) VALUES ('ВЕЛОМІР', 'МОСКВА ТВЕРСЬКИЙ ПРОСПЕКТ 14 ', '84954567213', 1); INSERT INTO FIRMI (NAZVANIE, ADRES, TELEFON, KOD_TIPA_FIRMI) VALUES ('СПОРТАКАДЕМІЯ', 'МОСКВА ЛЕНІНА 65 ", '84952345764 ', 1); INSERT INTO TIPI_TOVAROV (NAZVANIE, KOD_FIRMI, KOD_TIPA_TOVARA) VALUES ('КАСЕТ', 00001,1); INSERT INTO TIPI_TOVAROV (NAZVANIE, KOD_FIRMI, KOD_TIPA_TOVARA) VALUES ('Манетки', 00001,2); INSERT INTO TIPI_TOVAROV (NAZVANIE, KOD_FIRMI, KOD_TIPA_TOVARA) VALUES ('ЛАНЦЮГ', 00001,3); INSERT INTO TOVARI (NAZVANIE, KOD_TIPA_TOVARA) VALUES ('970DH ', 1); INSERT INTO TOVARI (NAZVANIE, KOD_TIPA_TOVARA) VALUES ('X9', 2); INSERT INTO TOVARI (NAZVANIE, KOD_TIPA_TOVARA) VALUES ('990 HOLLOWPOINT ', 3); INSERT INTO SKLAD (KOD_TOVARA, KOD_FIRMI, KOD_PERSON, KOD_TIPA_OPERAZII, ZENA, DATA, KOLICHESTVO) VALUES (00001,00002,3,1,1800, SYSDATE, 8); INSERT INTO SKLAD (KOD_TOVARA, KOD_FIRMI, KOD_PERSON, KOD_TIPA_OPERAZII, ZENA, DATA, KOLICHESTVO) VALUES (00002,, 1,2,1100, SYSDATE, 1); INSERT INTO SKLAD (KOD_TOVARA, KOD_FIRMI, KOD_PERSON, KOD_TIPA_OPERAZII, ZENA, DATA, KOLICHESTVO) VALUES (00003,00001,3,1,800, SYSDATE, 3); INSERT INTO TEXNICHESKIE_XARAKTERISTIKI (KOD_TOVARA, KOD_SVOISTVA, ZNACHENIE) VALUES (00001,3,112); INSERT INTO TEXNICHESKIE_XARAKTERISTIKI (KOD_TOVARA, KOD_SVOISTVA, ZNACHENIE) VALUES (00002,2,9); INSERT INTO TEXNICHESKIE_XARAKTERISTIKI (KOD_TOVARA, KOD_SVOISTVA, ZNACHENIE) VALUES (00003,1,11-32); Опис програми У додатку створено три групи користувачів: «Покупець», «Продавець» і «Менеджер з персоналу». Користувач «Покупець» може переглядати товари, наявні на складі. Зміни записів бази даних, даному користувачеві заборонені. При виборі користувача «продавець» з'являється вікно: Користувач повинен вибрати себе із запропонованого списку і натиснути «Ок». Якщо він себе не знайшов, то необхідно натиснути «Back» і звернутися до менеджера з персоналу. Після вибору свого імені зі списку користувачеві відкривається його робоче вікно з двома вкладками: продаж і прихід товару. На вкладці «Продаж» продавець може продати товар подвійним кліком миші по найменуванню товару. На вкладці «Прихід товарів» продавець може додати товар, вибравши його зі списку і ввівши закупівельну ціну і кількість. Якщо необхідний товар відсутній у списку, його можна додати, шляхом натискання кнопки «Додати Новий Товар». У вікні необхідно ввести ВСІ поля, інакше додавання товару не представляється можливим. Заповнивши всі поля та натиснувши кнопку «OK», користувач внесе товар в базу даних. Для скасування дії додавання товару, користувачеві необхідно натиснути клавішу «Back», при цьому він, користувач, повернеться у своє основне вікно. Користувач «Менеджер з персоналу» може переглядати інформацію про працівників фірми у своєму основному вікні. Також він може Наймати нових працівників, натиснувши кнопку «Найняти людини». У цьому випадку, йому, менеджеру, відкриється вікно додавання нового працівника . Тільки після заповнення ВСІХ полів менеджер зможе додати запис в базу даних. Якщо необхідної професії не опиниться в списку пропонованих, йому необхідно буде додати нову професію в список вже існуючих, шляхом натискання кнопки «Нова професія», потім введення назві професії і підтвердженням введення - натисканням клавіші «Ок». Якщо у результаті введення нової професії, необхідність в ній, професії відпаде, користувачеві необхідно натиснути кнопку «Васко».
|