|
@@ -0,0 +1,360 @@
|
|
|
+Министерство образования и науки Нижегородской области
|
|
|
+Государственное бюджетное профессиональное образовательное учреждение
|
|
|
+ <<Нижегородский Губернский колледж>>
|
|
|
+
|
|
|
+Методическая комиссия Информатика и вычислительная техника
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Допущен к защите:
|
|
|
+ преподаватель
|
|
|
+ __________Ю.С. Мамшева
|
|
|
+ <<___>>________2024 г.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ОТЧЕТ
|
|
|
+СЕРВЕРНАЯ ЧАСТЬ ПРИЛОЖЕНИЯ ДЛЯ РЕСТОРАНА <<ЧЁРНАЯ ЖЕМЧУЖИНА>>
|
|
|
+по МДК 01.03 <<Разработка мобильных приложений>>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+Студент:_____________ А.Р. Чернощекова 25.10.2024
|
|
|
+ (подпись)
|
|
|
+Преподаватель:_____________ Ю.С. Мамшева 25.10.2024
|
|
|
+ (подпись)
|
|
|
+Специальность, группа: 09.02.07, 41П
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ Нижний Новгород
|
|
|
+ 2024
|
|
|
+ В качестве хранилища данных для приложения ресторана была выбрана Supabase.
|
|
|
+ Supabase - это полифункциональная платформа, объединяющая в себе несколько важных программных решений и упрощающая их реализацию, позволяя добавлять в приложения или сайты такие функции, как авторизация, хранилище файлов, обновление контента на сайте в реальном времени и т.п.
|
|
|
+ Supabase использует SQL-синтаксис - особый язык, ориентированный на взаимодействие с базами данных. Также Supabase имеет удобный визуальный редактор таблиц. С помощью него можно добавлять в базу новую информацию, не используя программный код.
|
|
|
+ Supabase предлагает собственную библиотеку настроенных функций для подключения к БД, поиску информации внутри и добавлению новых данных программным путем, что делает его удобным для разработки приложений.
|
|
|
+ Реляционная модель проектированной базы данных будет содержать следующие таблицы (сущности): Пользователи, Отзывы, Изображения отзывов, Роли пользователей, Меню, Категории меню, Бронирования, Столы, Статус бронирования.
|
|
|
+ Таблица 1
|
|
|
+ Список сущностей
|
|
|
+ №
|
|
|
+ Название
|
|
|
+ Назначение
|
|
|
+ 1
|
|
|
+Пользователи
|
|
|
+Хранит информацию о пользователях ресторана
|
|
|
+ 2
|
|
|
+Отзывы
|
|
|
+Хранит отзывы клиентов о ресторане
|
|
|
+ 3
|
|
|
+Изображения отзывов
|
|
|
+Хранит изображения, загруженные пользователями вместе с их отзывами
|
|
|
+ 4
|
|
|
+Роли пользователей
|
|
|
+Содержит перечень возможных ролей пользователей приложения
|
|
|
+ 5
|
|
|
+Меню
|
|
|
+Хранит информацию о блюдах, предлагаемых в ресторане
|
|
|
+ 6
|
|
|
+Категории меню
|
|
|
+Хранит перечень категорий меню, позволяет организовать меню и облегчить поиск блюд
|
|
|
+ 7
|
|
|
+Бронирования
|
|
|
+Хранит информацию о бронированиях столов
|
|
|
+ 8
|
|
|
+Столы
|
|
|
+Хранит информацию о столах в ресторане
|
|
|
+ 9
|
|
|
+Статус бронирования
|
|
|
+Хранит перечень статусов бронирования, позволяет отслеживать состояние каждого бронирования
|
|
|
+
|
|
|
+ Для каждой таблицы (сущности) составим описание её атрибутов.
|
|
|
+ Таблица 2
|
|
|
+ Атрибуты таблицы <<Пользователи>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код пользователя
|
|
|
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому пользователю
|
|
|
+ВК (внешний ключ)
|
|
|
+Уникальный идентификатор пользователя
|
|
|
+С помощью данного внешнего ключа будет определено уникальное значение, соответствующее каждому пользователю приложения
|
|
|
+
|
|
|
+Имя
|
|
|
+
|
|
|
+
|
|
|
+Фамилия
|
|
|
+
|
|
|
+
|
|
|
+E-mail
|
|
|
+
|
|
|
+
|
|
|
+Номер пользователя
|
|
|
+
|
|
|
+ВК (внешний ключ)
|
|
|
+Роль пользователя
|
|
|
+С помощью данного внешнего ключа будет определена роль пользователя при работе с приложением
|
|
|
+
|
|
|
+Фото пользователя
|
|
|
+
|
|
|
+
|
|
|
+ Таблица 3
|
|
|
+ Атрибуты таблицы <<Отзывы>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код отзыва
|
|
|
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому отзыву
|
|
|
+ВК (внешний ключ)
|
|
|
+Код пользователя
|
|
|
+С помощью данного внешнего ключа будет определено, какой пользователь оставил данный отзыв
|
|
|
+
|
|
|
+Оценка
|
|
|
+
|
|
|
+
|
|
|
+Комментарий
|
|
|
+
|
|
|
+
|
|
|
+Дата и время отзыва
|
|
|
+
|
|
|
+
|
|
|
+ Таблица 4
|
|
|
+ Атрибуты таблицы <<Изображения отзывов>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код изображения
|
|
|
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому изображению
|
|
|
+ВК (внешний ключ)
|
|
|
+Код отзыва
|
|
|
+С помощью данного внешнего ключа будет определено, к какому отзыву было прикреплено данное изображение
|
|
|
+
|
|
|
+URL изображения
|
|
|
+
|
|
|
+ -
|
|
|
+ Таблица 5
|
|
|
+ Атрибуты таблицы <<Роли пользователей>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код роли
|
|
|
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждой роли
|
|
|
+
|
|
|
+Название
|
|
|
+
|
|
|
+
|
|
|
+ Таблица 6
|
|
|
+ Атрибуты таблицы <<Меню>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код блюда
|
|
|
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждому элементу меню
|
|
|
+
|
|
|
+Название
|
|
|
+
|
|
|
+
|
|
|
+Описание
|
|
|
+
|
|
|
+
|
|
|
+Состав
|
|
|
+
|
|
|
+
|
|
|
+Цена
|
|
|
+
|
|
|
+ВК (внешний ключ)
|
|
|
+Категория
|
|
|
+С помощью данного внешнего ключа будет определено, к какой категории относится блюдо
|
|
|
+
|
|
|
+ Таблица 7
|
|
|
+ Атрибуты таблицы <<Категории меню>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код категории
|
|
|
+Ключевое поле. Представляет собой первичный ключ. Это уникальное значение, соответствующее каждой категории меню
|
|
|
+
|
|
|
+Название
|
|
|
+
|
|
|
+
|
|
|
+ Таблица 8
|
|
|
+ Атрибуты таблицы <<Бронирования>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код бронирования
|
|
|
+Ключевое поле. Представляет собой уникальное значение, соответствующее каждому бронированию
|
|
|
+ВК (внешний ключ)
|
|
|
+Код пользователя
|
|
|
+С помощью данного внешнего ключа будет определено, какой пользователь оформил бронь
|
|
|
+ВК (внешний ключ)
|
|
|
+Код стола
|
|
|
+С помощью данного внешнего ключа будет определено, какой стол пользователь выбрал для бронирования
|
|
|
+
|
|
|
+Дата и время начала
|
|
|
+
|
|
|
+
|
|
|
+Дата и время окончания
|
|
|
+
|
|
|
+
|
|
|
+Количество человек
|
|
|
+
|
|
|
+
|
|
|
+Комментарий заказчика
|
|
|
+
|
|
|
+ВК (внешний ключ)
|
|
|
+Статус бронирования
|
|
|
+С помощью данного внешнего ключа будет определен статус бронирования для отслеживания состояния записи
|
|
|
+
|
|
|
+ Таблица 9
|
|
|
+ Атрибуты таблицы <<Столы>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код стола
|
|
|
+Ключевое поле. Представляет собой уникальное значение, соответствующее каждому столу
|
|
|
+
|
|
|
+Количество мест
|
|
|
+
|
|
|
+
|
|
|
+ Таблица 10
|
|
|
+ Атрибуты таблицы <<Статусы бронирования>>
|
|
|
+Ключевое поле
|
|
|
+Название
|
|
|
+Назначение
|
|
|
+ПК (первичный ключ)
|
|
|
+Код статуса
|
|
|
+Ключевое поле. Представляет собой уникальное значение, соответствующее каждому статусу
|
|
|
+
|
|
|
+Название
|
|
|
+
|
|
|
+
|
|
|
+ В таблице 11 представлены связи между таблицами базы данных.
|
|
|
+ №
|
|
|
+ Название связи
|
|
|
+ Сущности, участвующие в связи
|
|
|
+ Назначение
|
|
|
+ 1
|
|
|
+ 1:М
|
|
|
+Категории меню - Меню
|
|
|
+В одной категории меню может быть много блюд
|
|
|
+ 2
|
|
|
+ 1:М
|
|
|
+Роли пользователей - Пользователи
|
|
|
+У нескольких пользователей может быть одна роль
|
|
|
+ 3
|
|
|
+ 1:М
|
|
|
+Отзывы - Изображения отзывов
|
|
|
+В одном отзыве может быть несколько изображений
|
|
|
+ 4
|
|
|
+ 1:М
|
|
|
+Пользователи - Отзывы
|
|
|
+Один пользователь может оставить несколько отзывов о посещении ресторана
|
|
|
+ 5
|
|
|
+ 1:М
|
|
|
+Пользователи - Бронирования
|
|
|
+Один пользователь может оформить несколько бронирований
|
|
|
+ 6
|
|
|
+ 1:М
|
|
|
+Столы - Бронирования
|
|
|
+На один стол может быть оформлено несколько бронирований
|
|
|
+ 7
|
|
|
+ 1:М
|
|
|
+Статус бронирования - Бронирования
|
|
|
+Несколько бронирований могут иметь один статус бронирования
|
|
|
+
|
|
|
+ На рисунке 1 представлена ER-диаграмма проектируемой базы данных, содержащая все таблицы и связи базы данных.
|
|
|
+
|
|
|
+ Рисунок 1 - ER-диаграмма базы данных
|
|
|
+
|
|
|
+ Далее были реализованы все таблицы спроектированной базы данных в Supabase с помощью визуального редактора таблиц.
|
|
|
+
|
|
|
+ Рисунок 2 - Схема БД в Supabase
|
|
|
+ После создания таблиц каждая таблица была заполнена соответствующими данными.
|
|
|
+ В таблице 12 представлены созданные политики к таблицам.
|
|
|
+
|
|
|
+ Таблица 11
|
|
|
+ Политики доступа к таблицам
|
|
|
+ №
|
|
|
+ Название таблицы
|
|
|
+ Название политики
|
|
|
+ Назначение
|
|
|
+ 1
|
|
|
+ Бронирования
|
|
|
+Enable insert for authenticated users only
|
|
|
+Добавление записей доступно только для авторизированных пользователей
|
|
|
+ 2
|
|
|
+
|
|
|
+Enable update access for authenticated users only
|
|
|
+Изменение данных доступно только для авторизированных пользователей
|
|
|
+ 3
|
|
|
+
|
|
|
+Enable read access for authenticated users only
|
|
|
+Чтение данных из таблицы доступно только для авторизированных пользователей
|
|
|
+ 4
|
|
|
+ Меню
|
|
|
+Enable read access for all users
|
|
|
+Чтение данных из таблицы <<Меню>> доступно всем пользователям
|
|
|
+ 5
|
|
|
+
|
|
|
+Enable insert for authenticated users only
|
|
|
+Добавление данных в таблицу <<Меню>> доступно только для авторизированных пользователей
|
|
|
+ 6
|
|
|
+ Пользователи
|
|
|
+Enable update access for authenticated users only
|
|
|
+Изменение данных доступно только для авторизированных пользователей
|
|
|
+ 7
|
|
|
+
|
|
|
+Enable read access for authenticated users only
|
|
|
+Чтение данных доступно только для авторизированных пользователей
|
|
|
+ 8
|
|
|
+
|
|
|
+Enable delete access for authenticated users only
|
|
|
+Удаление данных из таблицы доступно только для авторизированных пользователей
|
|
|
+ 9
|
|
|
+ Отзывы
|
|
|
+Enable insert for authenticated users only
|
|
|
+Добавление данных в таблицу доступно только для авторизированных пользователей
|
|
|
+ 10
|
|
|
+
|
|
|
+Enable delete access for authenticated users only
|
|
|
+Удаление данных доступно только для авторизированных пользователей
|
|
|
+ 11
|
|
|
+
|
|
|
+Enable update access for authenticated users only
|
|
|
+Изменение данных доступно только для авторизированных пользователей
|
|
|
+ 12
|
|
|
+
|
|
|
+Enable read access for all users
|
|
|
+Чтение данных доступно для всех пользователей
|
|
|
+ 13
|
|
|
+ Изображения отзывов
|
|
|
+Enable read access for all users
|
|
|
+Чтение данных доступно для всех пользователей
|
|
|
+ 14
|
|
|
+
|
|
|
+Enable delete access for authenticated users only
|
|
|
+Удаление данных доступно только для авторизированных пользователей
|
|
|
+ 15
|
|
|
+ Статус бронирования
|
|
|
+Enable read access for authenticated users only
|
|
|
+Чтение данных доступно для авторизированных пользователей
|
|
|
+ 16
|
|
|
+ Столы
|
|
|
+Enable read access for all users
|
|
|
+Чтение данных доступно для всех пользователей
|
|
|
+
|
|
|
+
|