parent
0406c81072
commit
38370fa55c
@ -0,0 +1,59 @@ |
||||
### База данных Музыкального приложения |
||||
|
||||
## 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); |
Loading…
Reference in new issue