Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проект / Лабы_Итог_Финал.docx
Скачиваний:
0
Добавлен:
12.03.2026
Размер:
3.87 Mб
Скачать

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 (обязательно)

Тело запроса: Новые данные профиля

Ограничение: Только для своего профиля