免责声明:如果此问题更适合serverfault.com,请与我们联系
我想存储有关音乐的信息,特别是:
此信息将用于网络应用程序,我希望人们能够看到与相册相关的所有歌曲,以及与艺术家相关联的专辑以及与某种类型相关联的艺术家。
我目前正在使用MySQL,但在我决定切换之前我想知道:
答案 0 :(得分:3)
您的数据似乎是面向文档的数据库的理想选择
文件示例:
{
"type":"Album",
"artist":"ArtistName",
"album_name":"AlbumName",
"songs" : [
{"title":"SongTitle","duration":4.5}
],
"genres":["rock","indie"]
}
复制是couchDB最酷的功能之一(http://blog.couch.io/post/468392274/whats-new-in-apache-couchdb-0-11-part-three-new)
您可能还想看看Riak。
答案 1 :(得分:2)
此类信息非常适合文档数据库。与许多真实世界的数据一样,它本身并不是关系型的,因此将它变成关系模式会让人头疼(甚至使用ORM - 我从经验中说话)。 Ubuntu已经使用CouchDB在One product中存储音乐元数据以及其他内容。
逐一解答剩余的问题:
null
值所涉及的许多问题,这些问题很多且各不相同。 如果您决定要将歌曲文件本身与元数据一起存储,您也可以在CouchDB中通过提供歌曲文件作为文档的附件来实现;此外,由于没有架构,因此不会出现任何架构不一致的情况!
我希望我没有在这里犯过太多错误;我自己很难记录数据库。