Olá Ceilton. Tudo bem com você?
A modelagem que você está pensando faz sentido. Por exemplo, você poderia ter uma tabela Playlist
com os atributos que mencionou: nome_da_playlist
, quem_criou
, quem_segue
, data_de_criacao
, etc. E uma tabela Musica
com atributos como titulo
, artista
, duracao
, etc. Para gerenciar a relação entre playlists e músicas, você poderia criar uma tabela Playlist_Musica
que teria, pelo menos, dois campos: playlist_id
e musica_id
. Essa tabela associativa permitiria que uma música estivesse em várias playlists e uma playlist contivesse várias músicas. Exemplo de estrutura da tabela Musica, Playlist e Playlist_Musica
respectivamente:
id | titulo | artista | duracao | genero |
---|
1 | Imagine | John Lennon | 3:01 | Rock |
2 | Bohemian Rhapsody | Queen | 5:55 | Rock |
3 | Shape of You | Ed Sheeran | 4:24 | Pop |
id | nome_da_playlist | quem_criou | quem_segue | data_de_criacao |
---|
1 | Chill Vibes | User1 | User2,User3 | 2023-01-01 |
2 | Rock Classics | User2 | User1 | 2022-05-15 |
playlist_id | musica_id |
---|
1 | 1 |
1 | 2 |
2 | 2 |
2 | 3 |
Por outro lado, no exercício os atributos sugeridos também estão corretos, mesmo que sejam apresentados de maneira diferente. Onde, os atributos multivalorados poderiam ser como um campo que contém uma lista ou criar uma tabela associativa, exemplo: Playlist_Musica
para permitir múltiplos artistas por música. A flexibilidade da modelagem relacional permite que diferentes abordagens sejam adotadas, dependendo do objetivo e da granularidade desejada e até mesmo da pessoa que faz a modelagem em si.
Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado