我现在正在编写自己的小型(基于网络)音乐播放器。但是由于一些专辑,我失败了。我将有关歌曲,专辑和艺术家的所有信息存储在NoSQL数据库中,如下所示:
{
"artist" : "Some artist",
"albums" :
[
{
"name": "Some album",
"info" :
{
"id" : ObjectId("534a7d66f1053d665015825b"),
"released" : "2013"
},
"songs" :
[
{
"name" : "Some song",
"file" : "music.mp3",
"time" : 219,
"id" : ObjectId("534a7d66f1053d665015825c")
}
]
}
],
"_id" : ObjectId("534a7d66f1053d665015825d")
}
现在我想向用户显示他拥有的所有相册。没问题。循环浏览所有艺术家,选择所有专辑,将其显示给用户。如果没有汇编,这将很有效。当我显示上面描述的所有专辑时,用户会多次看到编辑,每个艺术家一次。
现在我看了一下我现在的音乐播放器 - Banshee - 并且看到它显示所有编辑作为来自" Various"的专辑。但它怎么知道的?它不在ID3标签中。我能想到的唯一一件事就是:如果超过一半的歌曲来自不同的艺术家 - > "各种&#34 ;.这是解决方案吗?或者你们知道别的什么吗?