You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.4 KiB
2.4 KiB
База данных Музыкального приложения
I
Будем разрабатывать базу данных для упрощённого музыкального приложения, похожего на Spotify/YouTube Music/iTunes со следующей функциональностью:
- пользовательские плейлисты;
- поиск аудиотреков;
- оформление платной подписки;
Функциональность, которую мы точно не будем реализовывать
- стриминг аудиотреков;
- пользовательские рекомендации(?);
II
Специфичные ограничения:
- обязателен учёт пользователей (например, с помощью какого-то числового идентификатора);
- для каждого трека должна быть сохранена следующая инфа:
- UPS (исполнитель)
- ISRC (год+страна записи)
- название трека
- исполнитель
- [опционально] текст трека
- [опционально] жанр
- [опционально] язык(и?) (а сколько языков есть? можно ли их описать в отдельной таблице?)
- про плейлисты хорошо бы тоже хранить информацию:
- название;
- открытый или нет;
- [опционально] описание;
- [опционально] ссылка на обложку;
Обязателен учёт следующих связей:
- пользователь <-> плейлисты
- плейлисты <-> набор треков
- пользователь <-> токен платной подписки
III
-
playlist
id
: integer(?) -- id;name
: varchar(100) -- имя плейлиста;is_open
: boolean -- открытый или нет;desc
: text -- описание;cover_link
: text(url?) -- ссылка на обложку;
-
user_to_playlist
user_id
: integer(?);playlist_id
: integer(?);
-
playlist_to_tracks:
playlist_id
: integer(?);track_id
: integer(?);
-
user_to_payment_token
user_id
: integer(?);token
: char(80);