Разработка базы данных для управления заказами торговой организации

Автор работы: Пользователь скрыл имя, 07 Января 2014 в 14:12, контрольная работа

Краткое описание

Разработать базу данных для управления заказами торговой организации. База должна отражать информацию:
о товарах и производителях;
о заказчиках;
о менеджерах;
о поступивших заказах.

Содержание

1. Техническое задание 3
2. Описание СУБД 4
3. Инфологическая модель 5
3. 1 Описание предметной области 5
3.2 Инфологическая схема объектов и связей 5
3.3 Ограничения предметной области 5
3.4 Основные операции в данном фрагменте предметной области 6
4. Концептуальная модель 7
Ограничения предметной области в концептуальной модели 7
Триггеры 7
5. Внешняя модель 9
6. Физическая модель 12
Список использованной литературы 13

Прикрепленные файлы: 1 файл

К.р_Базы данных.docx

— 110.96 Кб (Скачать документ)

(8, 'Иван Петрович Сидоров', '1943-02-15', 'м');

 

-- --------------------------------------------------------

 

--

-- Структура таблицы `product`

--

 

CREATE TABLE `product` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `id_vendor` int(10) unsigned NOT NULL,

  `sku` varchar(30) NOT NULL,

  `model` varchar(64) NOT NULL,

  `name` varchar(255) NOT NULL,

  `price` int(5) unsigned NOT NULL,

  `sold` int(11) NOT NULL DEFAULT '0',

  PRIMARY KEY (`id`),

  UNIQUE KEY `sku` (`sku`) USING BTREE,

  KEY `id_vendor` (`id_vendor`),

  KEY `price` (`price`),

  KEY `name` (`name`),

  KEY `model` (`model`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;

 

--

-- Дамп данных таблицы `product`

--

 

INSERT INTO `product` (`id`, `id_vendor`, `sku`, `model`, `name`, `price`, `sold`) VALUES

(1, 3, '355122', 'KDL-55HX753', 'Телевизор', 65490, 5),

(2, 4, '466255', 'GC 4860', 'Утюг', 3500, 13),

(3, 1, '756388', 'HMX-H430BR', 'Видеокамера', 18000, 3),

(4, 2, '856347', 'K55DR-SX092R', 'Ноутбук', 27000, 4),

(5, 6, '763854', 'EM-TW5900', 'Видеопроектор', 25000, 1),

(6, 5, '456321', 'TM-7026', 'Планшет', 3700, 4),

(7, 4, '363112', 'GS-D3000', 'Электробритва', 6700, 0),

(8, 8, '282377', 'ВАЗ-21217', 'Лада "Калина"', 280500, 3);

 

-- --------------------------------------------------------

 

--

-- Структура таблицы `vendor`

--

 

CREATE TABLE `vendor` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `name` varchar(64) NOT NULL,

  `country` varchar(64) NOT NULL,

  PRIMARY KEY (`id`),

  KEY `name` (`name`)

) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='Заказчики' AUTO_INCREMENT=9 ;

 

--

-- Дамп данных таблицы `vendor`

--

 

INSERT INTO `vendor` (`id`, `name`, `country`) VALUES

(1, 'Samsung', 'Южная Корея'),

(2, 'ASUS', 'Тайвань'),

(3, 'Sony', 'Япония'),

(4, 'Philips', 'Голландия'),

(5, 'Texet', 'Англия'),

(6, 'Panasonic', 'Япония'),

(8, 'АвтоВАЗ', 'Россия');

 

--

-- Ограничения внешнего ключа  сохраненных таблиц

--

 

--

-- Ограничения внешнего ключа  таблицы `invoice`

--

ALTER TABLE `invoice`

  ADD CONSTRAINT `FK_buyer` FOREIGN KEY (`id_buyer`) REFERENCES `buyer` (`id`),

  ADD CONSTRAINT `FK_manager` FOREIGN KEY (`id_manager`) REFERENCES `manager` (`id`);

--

-- Ограничения внешнего ключа  таблицы `items`

--

ALTER TABLE `items`

  ADD CONSTRAINT `FK_invoice` FOREIGN KEY (`id_invoice`) REFERENCES `invoice` (`id`) ON DELETE CASCADE,

  ADD CONSTRAINT `FK_product` FOREIGN KEY (`id_product`) REFERENCES `product` (`id`);

--

-- Ограничения внешнего ключа  таблицы `product`

--

ALTER TABLE `product`

  ADD CONSTRAINT `FK_product_1` FOREIGN KEY (`id_vendor`) REFERENCES `vendor` (`id`);

 

Приложение 2

Описание триггеров

-- описание для триггера product_sale

DELIMITER //

CREATE TRIGGER `product_sale` BEFORE INSERT ON `items`

FOR EACH ROW UPDATE product SET sold = sold + NEW.qty WHERE id = NEW.id_product

//

Вызывается при добавлении позиции в накладную. Добавляет  к атрибуту sold выбранного товара количество, указанное в строке накладной.

 

--описание для триггера cancel_item

DELIMITER //

CREATETRIGGER `cancel_item` AFTER DELETE ON `items`

FOR EACH ROW UPDATE product SET sold = sold - OLD.qty WHERE id = OLD.id_product

//

Вызывается при удалении позиции из накладной.Вычитает из атрибутаsoldвыбранного товара количество, указанное в удаляемой строке накладной.

 

 

 


Информация о работе Разработка базы данных для управления заказами торговой организации