Загрузка данных
Практическая работа № 3. Проектирование информационной системы
Тема: «Информационная система учёта питания и порций в школьной столовой»
Ниже готовая часть 1, составленная по заданию на фотографии. Текст можно копировать и вставлять в Word. Оформление: Times New Roman, 12 пт.
ЧАСТЬ 1. Постановка задачи и анализ предметной области
Задание 1.1. Формирование требований
1. Цель автоматизации
Цель автоматизации - разработать информационную систему для учёта блюд, меню, выданных порций и оплаты в школьной столовой. Система позволит сократить количество ошибок при подсчёте порций, контролировать установленный лимит питания и быстрее формировать отчёты за выбранную дату.
2. Обязательные функции системы
Справочники:
* ведение справочника блюд;
* хранение названий блюд, их стоимости и описаний.
Документы:
* создание меню на определённый день;
* регистрация выдачи порций;
* регистрация оплаты за питание;
* сохранение сведений о количестве выданных порций.
Отчёты:
* формирование отчёта о количестве выданных порций за выбранную дату;
* просмотр сведений об оплате;
* получение информации о блюдах, включённых в меню.
Печатные формы:
* формирование печатной формы меню на день;
* вывод меню на печать.
Сервисные функции:
* контроль установленного лимита порций;
* предупреждение при достижении лимита;
* проверка корректности введённых данных;
* уведомление об ошибках при заполнении документов.
3. Границы системы
Информационная система предназначена для автоматизации учёта питания в школьной столовой. Она позволяет вести справочник блюд, составлять ежедневное меню, учитывать выдачу порций и оплату, контролировать лимит порций и формировать отчёты.
Система не предназначена для закупки продуктов, ведения бухгалтерского учёта, расчёта заработной платы работников, управления поставщиками и составления медицинских диет. Эти процессы не входят в задачи разрабатываемого приложения.
4. Роли пользователей
1. Администратор
* управление справочником блюд;
* настройка лимита порций;
* просмотр всех документов и отчётов;
* контроль работы системы.
2. Работник столовой
* просмотр справочника блюд;
* составление меню на день;
* регистрация выдачи порций;
* внесение сведений об оплате;
* формирование и печать меню.
3. Руководитель столовой
* просмотр ежедневных отчётов;
* контроль количества выданных порций;
* проверка соблюдения лимита;
* анализ сведений об оплате и питании.
Задание 1.2. Пул сущностей и ER-модель
1. Пул потенциальных сущностей
Для проектирования информационной системы учёта питания и порций в школьной столовой выделены следующие потенциальные сущности:
* Блюдо.
* Категория блюда.
* Ингредиент.
* Состав блюда.
* Меню.
* Позиция меню.
* Приём пищи.
* Выдача порции.
* Оплата.
* Пользователь.
* Роль пользователя.
* Работник столовой.
* Ученик.
* Класс.
* Лимит порций.
* Отчёт.
* Единица измерения.
* Цена блюда.
* История изменений.
* Способ оплаты.
После анализа для основной ER-модели выбраны сущности, непосредственно необходимые для работы системы. Ингредиенты, состав блюда, история изменений и другие дополнительные сущности можно добавить при расширении функциональности.
2. ER-диаграмма
ER-диаграмма отражает основные сущности системы, их атрибуты и связи между ними.
Для создания схемы скопируй код ниже и вставь его на сайт Mermaid Live Editor. После этого диаграмму можно экспортировать в PNG или SVG и вставить в Word.
erDiagram
CATEGORY ||--o{ DISH : "содержит"
DISH ||--o{ MENU_ITEM : "включается"
MENU ||--|{ MENU_ITEM : "содержит"
MENU ||--o{ MEAL_ISSUE : "используется"
DISH ||--o{ MEAL_ISSUE : "выдается"
USER ||--o{ MEAL_ISSUE : "оформляет"
MEAL_ISSUE ||--o| PAYMENT : "оплачивается"
USER ||--o{ MENU : "создает"
CATEGORY {
int category_id PK
string name
}
DISH {
int dish_id PK
int category_id FK
string name
decimal price
string description
}
MENU {
int menu_id PK
int user_id FK
date menu_date
}
MENU_ITEM {
int menu_item_id PK
int menu_id FK
int dish_id FK
int planned_portions
}
MEAL_ISSUE {
int issue_id PK
int menu_id FK
int dish_id FK
int user_id FK
int portions
datetime issue_date
}
PAYMENT {
int payment_id PK
int issue_id FK
decimal amount
string payment_status
string payment_method
}
USER {
int user_id PK
string full_name
string login
string role
}
3. Наследование сущностей
Для системы можно предусмотреть наследование на основе сущности «Пользователь». Она содержит общие данные пользователей, а специализированные типы определяют их полномочия.
* Администратор - управляет справочниками и настройками системы.
* Работник столовой - составляет меню и регистрирует выдачу порций.
* Руководитель столовой - контролирует отчёты и соблюдение лимитов.
Все три типа пользователей имеют общие атрибуты: идентификатор, ФИО и логин. При этом набор доступных функций зависит от роли пользователя.
4. Первичные и внешние ключи, типы связей
Первичные ключи (PK) используются для уникальной идентификации записей в таблицах. Например, dish_id определяет конкретное блюдо, а menu_id - конкретное меню.
Внешние ключи (FK) связывают таблицы между собой. Например, category_id в таблице «Блюдо» ссылается на таблицу «Категория блюда».
Основные связи между сущностями:
* Категория - Блюдо (1:M): одна категория может содержать несколько блюд.
* Меню - Позиция меню (1:M): одно меню включает несколько позиций.
* Блюдо - Позиция меню (1:M): одно блюдо может встречаться в разных меню.
* Блюдо - Выдача порции (1:M): одно блюдо может выдаваться много раз.
* Пользователь - Выдача порции (1:M): один работник может оформлять множество операций выдачи.
* Выдача порции - Оплата (1:1): одной операции выдачи соответствует не более одной записи об оплате.
* Пользователь - Меню (1:M): один пользователь может создавать несколько меню.
Вывод: в результате выполнения первой части работы определены цель автоматизации, основные функции и ограничения системы, роли пользователей, потенциальные сущности и связи между ними. Полученная ER-модель станет основой для дальнейшего проектирования базы данных информационной системы учёта питания и порций в школьной столовой.