我想做一个音乐播放网站,用户可以保存歌曲的播放列表,以便以后重新生成。我是SQL的新手,但似乎数据库旨在容纳固定长度的变量,而用户生成的播放列表将是任意长度。我想到了几种方法来解决这个问题:
- 单独的表(也许每个播放列表都有另一个表?
- .XML
我觉得我错过了一条简单的第三条路。我正在用php做这件事,但如果有一种使用django的超级简单的方法,我也会感兴趣。
2 个表格:
- 播放列表。字段:ID |标题 |owner_id(参考 user.id)
- 歌曲。字段:ID |标题 |长度 |playlist_id(参考 playlist.id)
这个怎么样:
Playlists: list_id|title|owner_id
Songs: song_id|title|artist|album|year|length|style|whatevereelseyouwnattoadd
Songs_In_Lists: song_id|list_id
第三个表只是将歌曲与播放列表联系起来。否则,如果歌曲进入多个播放列表,歌曲信息将有很多冗余。第三个表的主键将位于两列上。同一首歌只进入同一列表一次,因此效果很好。