Добавил:
У меня есть канал с приколами: t.me/urmipies_garbage Подпишитесь пж-пж!!!! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
laba / laba.pdf
Скачиваний:
0
Добавлен:
02.09.2026
Размер:
363 Кб
Скачать
2.content_moduleуправление медитациями, категориями,
плейлистами, связями между ними.
3.session_module— обработка сеансов прослушивания, работа с
таймерами, история прослушиваний.
4.storage_module— взаимодействие с S3-хранилищем для загрузки и
получения аудиофайлов.
5.admin_moduleадминистративные функции: мониторинг,
управление пользователями, статистика.
Все модули взаимодействуют с единой базой данных PostgreSQL и
используют общие сервисы аутентификации и логирования.

5.3Уровень доступа к данным

Слой доступа к данным реализован на сервере СУБД, где хранится база
данных проекта.
СУБД обеспечивает хранение и управление файлами медиатеки (через
ссылки/метаданные), выполнение SQL‑запросов, транзакционную обработку
операций.
22

6Проектирование базы данных

6.1Разработка информационного ресурса

В базе данных определены следующие сущности:
1.Пользователи;
2.Фонотеки;
3.Аудиозаписи;
4.Метаданные аудиозаписей;
5.Плейлисты;
6.Истории прослушиваний.

6.2Логическая модель

6.3Физическая модель

Таблица11 — Атрибуты сущности «Пользователь»
№ИмяПодписьТипКлючОграничения
1user_idУникальный
идентификатор
пользователя
2role_idИдентификатор
роли
3usernameИмя пользовате-
ля / логин
4emailЭлектронная
почта
5reg_dateДата регистра-
ции
6password_hashХэш пароляVARCHAR(255)-NOT NULL
INTEGERPRIMARY KEYNOT NULL
INTEGERFOREIGN KEYNOT NULL
VARCHAR(50)-NOT NULL,
UNIQUE
VARCHAR(100)-NOT NULL
TIMESTAMP-NOT NULL
Таблица12 — Атрибуты сущности «Роль»
№ИмяПодписьТипКлючОграничения
1role_idУникальный идентифи-
катор роли
2role_nameНазвание ролиVARCHAR(50)-NOT NULL
INTEGERPRIMARY KEYNOT NULL
23
3permissionsБитовая последователь-
ность прав
INTEGER-NOT NULL
Таблица13 — Атрибуты сущности «Фонотека»
№ИмяПодписьТипКлючОграничения
1library_idУникальный идентифи-
катор фонотеки
2user_idИдентификатор владель-
ца фонотеки (пользовате-
ля)
3creation_dateДата создания фонотекиTIMESTAMP-NOT NULL
4total_tracksКоличество аудиозапи-
сей в фонотеке
INTEGERPRIMARY KEYNOT NULL
INTEGERFOREIGN KEYNOT NULL
INTEGER-NOT NULL
Таблица14 — Атрибуты сущности «Аудиозапись»
№ИмяПодписьТипКлючОграничения
1track_idУникальный идентифи-
катор аудиозаписи
2library_idИдентификатор фоноте-киINTEGERFOREIGN KEYNOT NULL
INTEGERPRIMARY KEYNOT NULL
3le_pathПуть к файлуVARCHAR(255)-NOT NULL
4durationДлительность (в секун-
дах)
5upload_dateДата добавленияTIMESTAMP-NOT NULL
INTEGER-NOT NULL
Таблица15 — Атрибуты сущности «Метаданные аудиозаписи»
№ИмяПодписьТипКлючОграничения
1track_meta_idУникальный иденти-
фикатор метаданных
аудиозаписи
2track_idИдентификатор ауди-
озаписи
3titleНазвание трекаVARCHAR(100)-NOT NULL
4artistИсполнительVARCHAR(100)-NOT NULL
5albumАльбомVARCHAR(100)--
6genreЖанрVARCHAR(50)--
INTEGERPRIMARY KEYNOT NULL
INTEGERFOREIGN KEYNOT NULL
7yearГод выпускаINTEGER--
24
Таблица16 — Атрибуты сущности «Плейлист»
№ИмяПодписьТипКлючОграничения
1playlist_idУникальный иденти-
фикатор плейлиста
2user_idИдентификатор вла-
дельца плейлиста
(пользователя)
3nameНазвание плейлистаVARCHAR(100)-NOT NULL
4descriptionОписание плейлистаVARCHAR(255)--
5creation_dateДата создания плейли-
ста
6update_dateДата последнего об-
новления плейлиста
INTEGERPRIMARY KEYNOT NULL
INTEGERFOREIGN KEYNOT NULL
TIMESTAMP-NOT NULL
TIMESTAMP-NOT NULL
Таблица17 — Атрибуты сущности «Элемент плейлиста»
№ИмяПодписьТипКлючОграничения
1playlist_item_idУникальный идентифика-
INTEGERPRIMARY KEYNOT NULL
тор элемента плейлиста
2playlist_idИдентификатор плейли-
ста
3track_idИдентификатор трекаINTEGERFOREIGN KEYNOT NULL
INTEGERFOREIGN KEYNOT NULL
Таблица18 — Атрибуты сущности «История прослушиваний»
№ИмяПодписьТипКлючОграничения
1history_idУникальный иденти-
фикатор записи в
истории прослушива-
ний
2user_idИдентификатор поль-
зователя
3track_idИдентификатор про-
слушанного трека
INTEGERPRIMARY KEYNOT NULL
INTEGERFOREIGN KEYNOT NULL
INTEGERFOREIGN KEYNOT NULL
4played_dateДата начала прослу-
шивания
TIMESTAMP-NOT NULL
25
5duration_listenedПродолжительность
прослушивания в се-
кундах
INTEGER-NOT NULL

6.4Модель доступа к системе

6.4.1Роли в системе

Гость – неавторизованный пользователь, имеет доступ только к
просмотру публичной информации и базовому функционалу без изменения
данных в системе. Авторизованный пользователь – зарегистрированный
пользователь с возможностью вести личную фонотеку: загружать
аудиозаписи, создавать и редактировать плейлисты, искать и фильтровать
треки. Премиум‑пользователь – расширенная версия авторизованного
пользователя, получает дополнительный доступ к аналитике своей фонотеки
и, при необходимости, к другим продвинутым функциям сервиса.
Администратор – обладает полным доступом к системе: управление
пользователями и их ролями, модерация и удаление любых аудиозаписей и
плейлистов, работа с аналитикой и внутренними настройками приложения.
Таблица19 — Матрица прав доступа
№ФункцияГостьАвторизован-
ный пользова-
Премиум поль-
зователь
Администра-
тор
тель
1Просмотр пуб-
ДаДаДаДа
личной инфор-
мации
2Регистрация
пользователя
3Аутентифика-
ция (вход в си-
стему)
ДаНетНетНет
ДаНетНетНет
26
4Просмотр лич-
ной фонотеки
НетДаДаДа
5Загрузка ауди-
озаписей
6Удаление
аудиозаписей
7Поиск аудиоза-
писей
8Фильтрация
аудиозаписей
9Создание
плейлистов
10Добавление
треков в плей-
листы
НетДаДаДа
НетДа (только
свои)
НетДаДаДа
НетДаДаДа
НетДаДаДа
НетДаДаДа
Да (только
свои)
Да
11Удаление тре-
ков из плейли-
стов
12Аналитика фо-
нотеки
13Управление
пользователя-
ми системы
НетДаДаДа
НетНетДаДа
НетНетНетДа
27
Соседние файлы в папке laba
  • #
    02.09.2026363 Кб0laba.pdf
  • #
    02.09.202694 Кб0laba.typ