I need your advice whether RavenDB would be suitable for building a Music Database. I would like to use the embedded version in a C# Windows Application.
Currently the database is based on SQL with normalisation in place, having tables for e.g. Artist, Album, Genre, Share (main folder of music collection), Folder, Song and then a bunch of tables to build the relations like AlbumArtist, GenreSong, ArtistSong, ComposerSong, ConductorSOng, etc. I think you'll get it.
Now with RavenDB I could store every Song as a Document, containing all the information, but then I would multiply ArtistNAme, AlbumName and even the Folder for every song.
Figured out that I could separate Artist, Genre, etc. and use Includes in my Query, but how would i run then a query which gives me all Songs with a Genre of "Rock" or all Albums for a specific Artist?
My understanding is that i would need an Index to be able to use Properties from an included document as part of a query. Otherwise I would get compilation errors. Right? So basically I would need to build one large index containing all the fields that a user might do a query.
Or is there any other way, which I don't see?