- •«Московский технический университет связи и информатики»
- •Документация на разработку мультимедийной информационной системы «ImageHub»
- •1. Описание предметной области
- •2. Требования к системе
- •2.1. Требования к структуре и функционированию системы
- •2.2. Функциональные требования
- •2.3. Нефункциональные требования
- •База данных
- •3.1. Архитектура бизнес-процесса получения контента
- •3.2. Процедура авторизации
- •4. База данных
- •4.1. Сущности мультимедийной информационной системы
- •4.2. Атрибуты сущностей
- •4.3. Приведение таблицы к первой нормальной форме
- •4.4. Приведение таблицы ко второй нормальной форме
- •4.5. Приведение таблицы к третьей нормальной форме
- •4.6. Примеры запросов
- •5. Серверная часть системы
- •5.1. Основные компоненты
- •5.2. Ролевая модель и запросы
- •5.3. Приоритетная система очередей
- •5.4. Обработка запросов
- •5.5. Расчет максимальной нагрузки
- •5.6. Механизмы обработки ошибок
- •6. Пользовательский интерфейс
- •7. Результат работы
4.3. Приведение таблицы к первой нормальной форме
Таблица 18 - Первая нормальная форма таблицы «ImageHub»
Пользователь_ID |
Пользователь_Логин |
Пользователь_Email |
Пин_ID |
Пин_Название |
Пин_URL |
Тег |
Доска_ID |
Доска_Название |
Комментарий_ID |
Комментарий_Текст |
4.4. Приведение таблицы ко второй нормальной форме
Таблица 19 – 2НФ сущности USERS
User_ID (PK) |
User_login |
Usr_email |
Таблица 20 – 2НФ сущности PINS
Pin_ID (PK) |
Pin_Title |
Pin_URL |
Author_ID (FK) |
Таблица 21 – 2НФ сущности BOARDS
Board_ID (PK) |
Board_Title |
Owner_ID (FK) |
Таблица 22 – 2НФ сущности PINS_TAGS
Pin_ID (PK,FK) |
Tag (PK) |
Таблица 23 – 2НФ сущности BOARD_PINS
Board_ID (PK, FK) |
Pin_ID (PK, FK) |
Таблица 24 – 2НФ сущности COMMENTS
Comment_ID (PK) |
Comment_Text |
Pin_ID (FK) |
Author_ID (FK) |
4.5. Приведение таблицы к третьей нормальной форме
Таблица 25 – 3НФ сущности USERS
USER_ID (PK) |
User_Login |
User_Email |
Password_Hash |
Role |
Avatar_Url |
Bio |
Таблица 26 – 3НФ сущности PINS
Pin_ID |
Title |
Author_ID |
Category_ID |
Status |
Created_At |
Like_Count |
Таблица 27 – 3НФ сущности BOARDS
Board_ID (PK) |
Title |
Description |
Owner_ID (Fk) |
Is_Public |
Created_At |
Таблица 28 – 3НФ сущности PINS_TAGS
Pin_ID (PK,FK) |
Tag (PK) |
Таблица 29 – 3НФ сущности BOARD_PINS
Board_ID (PK, FK) |
Pin_ID (PK, FK) |
Added_At |
Таблица 30 – 3НФ сущности COMMENTS
Coment_ID (PK) |
Text |
Pin_ID (FK) |
Author_ID (FK) |
Created_At |
Таблица 31 – 3НФ сущности FAVORITES
User_ID (PK,FK) |
Pin_ID (PK, FK) |
Saved_At |
Также ниже представлена даталогическая модель нашей системы (рисунок 4).
Рисунок 4 – Даталогическая модель
4.6. Примеры запросов
1. Регистрация нового пользователя
Метод: POST
URL: /api/users/register
Описание: Создание новой учетной записи пользователя
Тело запроса: Логин, email, пароль, имя пользователя
Ответ: Уникальный ID пользователя, токен доступа
2. Получение профиля пользователя
Метод: GET
URL: /api/users/{user_id}
Описание: Получение публичной информации о пользователе
Заголовки: Authorization (опционально)
Ответ: Данные профиля, статистика активности
3. Обновление профиля пользователя
Метод: PUT
URL: /api/users/{user_id}
Описание: Редактирование данных пользователя
Заголовки: Authorization (обязательно)
Тело запроса: Новые данные профиля
Ограничение: Только для своего профиля
