> I'm in favor of normalization mostly because of data integrity. I don't think(!) concerns of storage size and query performance are relevant given the essentially trivial amount of data we're dealing with.
I agree that the size and performance differences for these approaches are not too important even for the largest of music libraries. The reason I'm currently favoring a denormalized approach and a key/value model is for conceptual simplicity: for the vast majority of cases, this is exactly what's needed and more complexity will impede development.
> When I found beets a couple of weeks ago, I was looking for a way to create playlists based on all artists participating in a recording. Let's say I want to create a playlist for Steve Morse. Off the top of my head, I'd have to look at albums by himself, the Dixie Dregs, Kansas, Deep Purple, Flying Colors. The thing is, I don't want to use my head for that and I see beets as a piece in the toolkit I need to get there. Another piece is, that as far as I can tell,
discogs.com has a lot of the information I'm looking for.
This sounds like a really interesting use case and you're right that a more complex schema might be appropriate here.
Note that beets' current preferred source of music metadata, MusicBrainz, also has the information you're looking for. See Steve Morse's "member of" relationships here:
http://musicbrainz.org/artist/6f0d1ab4-a0b8-4d59-acda-5fe3b63058f0/relationships
It sounds like you're interested in queries over the full sophistication of the MusicBrainz data model. That's an exciting prospect, and something I'd be interested in exploring, but it's different from the limited kinds of schema extensibility that 1.2 will bring.
Adrian