База данных «Склад продуктов для столовой или кафе» - Проектирование
Необходимо разработать прикладную систему «Склад продуктов для столовой или кафе».Задачи – учет продуктов, калькуляция блюд, приемка и отпуск продуктов со склада.
Проведем проектирование процессов и потоков данных информационной системы.
Полный текст задания.
Для каждого продукта, имеющегося на складе, нужно хранить код, название, имеющееся количество и единицу его измерения (килограммы, штуки и т.д.), стоимость единицы товара. В отдельной таблице хранить рецептуру всех блюд, которые готовятся из этих продуктов.
Предусмотреть возможность выполнения следующих действий:
- добавление нового продукта, которого еще нет на складе или нового блюда, которого еще нет в меню
- удаление какого-либо продукта или блюда, изменение стоимости продукта
- поступление новой партии продукта, который уже имеется на складе. При этом ввести количество продукта и изменить его количество в таблице. Вывести Накладную о приемке продукта.
- отпуск продуктов со склада. При этом вводится или выбирается по меню название блюда и количество порций, затем автоматически выбираются нужные продукты, и вычисляется их количество. Если нужного количества какого-либо продукта нет на складе, вывести соответствующее сообщение. Если все продукты имеются в нужном количестве, изменить количество для каждого продукта, взятого со склада и вывести накладную.
- калькуляция стоимости одной порции любого блюда. Стоимость одной порции складывается из стоимости всех продуктов, затрат на изготовление одной порции и накладных расходов. Затраты на изготовление блюда и накладные расходы вводятся.
Проведем анализ проектируемой базы данных. Процессы в системе можно разделить на три блока – поступление продуктов, калькуляция и отпуск продуктов со склада.
Информацию о продуктах можно вводить при их поступлении (если продукта еще нет в справочнике, то его нужно внести). Если продукт есть в базе, то программа должна посчитать остаток продукта на складе.
Информация о блюдах и расходах на каждое блюдо вводится в разделе калькуляции.
Информация по выдаче продуктов вводится в разделе отпуска. Там же программа должна обновить остатки.
Во всех разделах печатаются выходные документы.
В программе AllFusion Process Modeler (BPwin) создадим контекстную диаграмму IDEF0.
Информацию о продуктах можно вводить при их поступлении (если продукта еще нет в справочнике, то его нужно внести). Если продукт есть в базе, то программа должна посчитать остаток продукта на складе.
Информация о блюдах и расходах на каждое блюдо вводится в разделе калькуляции.
Информация по выдаче продуктов вводится в разделе отпуска. Там же программа должна обновить остатки.
Во всех разделах печатаются выходные документы.
В программе AllFusion Process Modeler (BPwin) создадим контекстную диаграмму IDEF0.
Работа – учет продуктов на складе.
Механизм, то есть ресурсы, выполняющие работу, - это сотрудник склада, который будет вводить информацию, получать и выдавать продукты, а также сама программа, которая будет рассчитывать остатки продуктов после поступления и выдачи. Стрелка механизма входит в нижнюю грань работы.
Управление, то есть документы и информация, регламентирующие работу склада, это порядок учета продуктов, расчет цен и расходов и рецептура блюд. В принципе, расчет цен и расходов может включаться в порядок учета. Стрелка управления входит в верхнюю грань работы. В работе должна быть хотя бы одна стрелка управления.
Вход, то есть информация или материалы для обработки, - поступление продуктов на склад и требование на выдачу. Стрелки входа входят в левую грань работы.
Выходы – все отчетные документы (накладные, калькуляция) и набор продуктов на выдачу. Стрелки выхода исходят из правой грани работы. Должен быть по меньшей мере один выход, иначе работа не имеет смысла.
На диаграмме заметна цветовая дифференциацияштанов стрелок. Все, что относится к материальным товарам, зеленого цвета. Синим цветом выделены стрелки управления. Стрелки управления – красный (сотрудник), розовый (программа). Заранее скажу, что на других диаграммах розовым цветом будут выделены стрелки информации в базе данных.
Проведем декомпозицию диаграммы на три блока и расставим все стрелки по разным работам.
Механизм, то есть ресурсы, выполняющие работу, - это сотрудник склада, который будет вводить информацию, получать и выдавать продукты, а также сама программа, которая будет рассчитывать остатки продуктов после поступления и выдачи. Стрелка механизма входит в нижнюю грань работы.
Управление, то есть документы и информация, регламентирующие работу склада, это порядок учета продуктов, расчет цен и расходов и рецептура блюд. В принципе, расчет цен и расходов может включаться в порядок учета. Стрелка управления входит в верхнюю грань работы. В работе должна быть хотя бы одна стрелка управления.
Вход, то есть информация или материалы для обработки, - поступление продуктов на склад и требование на выдачу. Стрелки входа входят в левую грань работы.
Выходы – все отчетные документы (накладные, калькуляция) и набор продуктов на выдачу. Стрелки выхода исходят из правой грани работы. Должен быть по меньшей мере один выход, иначе работа не имеет смысла.
На диаграмме заметна цветовая дифференциация
Проведем декомпозицию диаграммы на три блока и расставим все стрелки по разным работам.
Появились внутренние стрелки (информация в базе данных), соединяющие работы между собой от выхода к входу. Кроме того, из работы «Поступление продуктов» выходит стрелка «Продукты на складе». Она же входит как управление в работу «Выдача продуктов». Почему управление? Потому что мы не сможем выдать больше продуктов, чем их есть на складе. Независимо от того, сколько их там содержится по базе. Хотя было бы идеально, если бы остатки в базе и в реальности совпадали. Но это, конечно, только мое мнение. Можно и по-другому спроектировать.
Да, и еще одна внутренняя стрелка «Обновленная информация в БД». Он является выходом из работы «Выдача продуктов» и входом работы «Калькуляция». Это информация, которая находится в базе после выдачи продуктов и расчета остатков.
Проводим декомпозицию первой работы – «Поступление товаров».
Да, и еще одна внутренняя стрелка «Обновленная информация в БД». Он является выходом из работы «Выдача продуктов» и входом работы «Калькуляция». Это информация, которая находится в базе после выдачи продуктов и расчета остатков.
Проводим декомпозицию первой работы – «Поступление товаров».
Сотрудник склада принял поступившие продукты (выход – продукты на складе), внес информацию по продуктам и поступлении, напечатал накладную, дальше идет работа программы. Под управлением информации в базе данных рассчитываются остатки продуктов, на выход идет новая информация в базе.
Декомпозиция работы «Калькуляция блюд».
Декомпозиция работы «Калькуляция блюд».
Сотрудник вводит справочник рецептуры и печатает калькуляцию, программа рассчитывает калькуляцию. Управлением является информация в базе данных.
Декомпозиция работы «Выдача продуктов».
Декомпозиция работы «Выдача продуктов».
Тут тоже сотрудник вводит информацию, выдает продукты и печатает отчет (накладную), программа рассчитывает остатки и сохраняет информацию в базе.
Перейдем к проектированию таблиц базы данных.
Сразу понятно, что нужны таблицы «Единицы измерения», «Продукты» и «Блюда». Нужна таблица «Приемка», в которой будет информация о номере и дате документа, продукте и его количестве. Примем самый простой вариант, когда в одной накладной будет учитываться один продукт. В противном случае была бы нужна еще одна таблица.
Еще одна таблица – Рецептура. Блюдо – Продукт – Количество продукта на порцию.
Осталось разобраться с отпуском продуктов. Во-первых, нужна таблица, где будут содержаться данные документов на отпуск – номер, дата, блюдо, количество порций. И еще таблица, в которой будут количества отпущенных со склада продуктов.
Остались еще затраты и расходы, которые нужно вводить отдельно на каждое блюдо. Если их отнести к рецептуре, то они будут повторяться в каждой строке, то есть получится избыточность данных. Поэтому будем их хранить в справочнике блюд.
Общая схема базы данных:
Перейдем к проектированию таблиц базы данных.
Сразу понятно, что нужны таблицы «Единицы измерения», «Продукты» и «Блюда». Нужна таблица «Приемка», в которой будет информация о номере и дате документа, продукте и его количестве. Примем самый простой вариант, когда в одной накладной будет учитываться один продукт. В противном случае была бы нужна еще одна таблица.
Еще одна таблица – Рецептура. Блюдо – Продукт – Количество продукта на порцию.
Осталось разобраться с отпуском продуктов. Во-первых, нужна таблица, где будут содержаться данные документов на отпуск – номер, дата, блюдо, количество порций. И еще таблица, в которой будут количества отпущенных со склада продуктов.
Остались еще затраты и расходы, которые нужно вводить отдельно на каждое блюдо. Если их отнести к рецептуре, то они будут повторяться в каждой строке, то есть получится избыточность данных. Поэтому будем их хранить в справочнике блюд.
Общая схема базы данных:
Это, пожалуй, самый простой вариант проектирования подобной базы данных. Самый минимум таблиц.
Реализация в программе MS Access 2003 - Склад продуктов для столовой или кафе
Реализация в программе MS Access 2003 - Склад продуктов для столовой или кафе
