Разработка базы данных из предметной области магазин, страница 2

Реализуем таблицу Работник. Для идентификации записей введем первичный ключ ID.

Таблица 4.2 Пояснение типов полей табл. «Работник»

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID работника

ID

NUMER(10)

Порядковый  номер

Primary Key

ФИО

clientName

VARCHAR2(100)

Фамилия имя отчество

Реализуем таблицу Товар. Для идентификации записей введем первичный ключ ID.

Таблица 4.3 Пояснение типов полей табл. «Товар»

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID товара

ID

NUMER(10)

Порядковый номер товара

Primary Key

Название

productName

VARCHAR(50)

Название товара

Цена

price

NUMBER(8,2)

Цена товара

Количество

quantity

NUMBER(7,3)

Количество товара на складе

Реализуем таблицу Продажа. Для идентификации записей введем первичный ключ ID.

Таблица 4.4 Пояснение типов полей табл. «Продажа»

Атрибут

Столбец

Тип данных

Мотивация

Примечание

ID продажи

ID

NUMER(10)

Порядковый номер продажи

Primary Key

ID Работник

productID

NUMBER(10)

Порядковый номер клиента

Foreign Key

ID Клиент

workerID

NUMBER(10)

Порядковый номер клиента

Foreign Key

ID Товар

clientID

NUMBER(10)

Порядковый номер товара

Foreign Key

Количество

sellQuantity

NUMBER(7,3)

Количество проданного товара

Дата продажи

sellDate

DATE

Дата продажи товара

Рисунок 4.1 — Схема базы данных

5 Физическая реализация Базы данных

5.1 Создание таблици

drop table sell;

drop table worker;

drop table client;

drop table product;

CREATE TABLE product(                      

   ID NUMBER(10) NOT NULL,              

   productName VARCHAR(50) NOT NULL,                  

   price NUMBER(8,2),

   quantity NUMBER(7,3),  

   CONSTRAINT product_pk PRIMARY KEY (ID)

);

CREATE TABLE worker(                    

   ID NUMBER(10) NOT NULL,             

   workerName VARCHAR2(100) NOT NULL,  

   CONSTRAINT worker_pk PRIMARY KEY (ID)

);

CREATE TABLE client(                   

   ID NUMBER(10) NOT NULL,             

   clientName VARCHAR2(100) NOT NULL,  

   clientAddress VARCHAR2(500),        

   clientPhone NUMBER(10),             

   CONSTRAINT client_pk PRIMARY KEY (ID)

);

CREATE TABLE sell(                      

   ID NUMBER(10) NOT NULL,              

   productID NUMBER(10) NOT NULL,          

   workerID NUMBER(10) NOT NULL,        

   clientID NUMBER(10) NOT NULL,

   sellQuantity NUMBER(7,3) NOT NULL,   

   sellDate DATE NOT NULL, 

   CONSTRAINT sell_pk PRIMARY KEY (ID),

   CONSTRAINT sell_product_fk FOREIGN KEY (productID) REFERENCES product (ID),

   CONSTRAINT sell_worker_fk FOREIGN KEY (workerID) REFERENCES worker (ID),

   CONSTRAINT sell_client_fk FOREIGN KEY (clientID) REFERENCES client (ID)

);

commit;


5.2 Заполнение таблиц

delete from product;

delete from worker;

delete from client;

delete from sell;

INSERT INTO product VALUES(1,'product1',14.20,91);

INSERT INTO product VALUES(2,'product2',12.40,82);

INSERT INTO product VALUES(3,'product3',54.18,73);

INSERT INTO product VALUES(4,'product4',13.99,64);

INSERT INTO product VALUES(5,'product5',74.10,55);

INSERT INTO product VALUES(6,'product6',10.50,46);

INSERT INTO product VALUES(7,'product7',11.50,37);

INSERT INTO product VALUES(8,'product8',18.95,28);

INSERT INTO product VALUES(9,'product9',01.40,19);