Автор работы: Пользователь скрыл имя, 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
(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`);
Описание триггеров
-- описание для триггера 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выбранного товара количество, указанное в удаляемой строке накладной.
Информация о работе Разработка базы данных для управления заказами торговой организации