(2014-10-13, 13:37)whitebelly Wrote: (2014-10-13, 07:13)ilomambo Wrote: So basically, yes, there was a inconsistency between the album and album_artist tables which lead XBMC to show ghost artists.
Album_Artist is only populated when there is artist information that has been scraped. So there will not be a 1:1 match. The 'ghost artist' must be listed in the ALBUM table somewhere, and that entry most likely came from a tag, or an override from and MBID tag scrape.
If that's the case, then
album_artist is a subset of
album, so every record in
album_artist must have a correspondent record in the
album table. In my case the correspondent record was missing so I had to clean
album_artist orphan record.
A secondary effect of this was that I had artists linked to this orphan record which had no other entry elsewhere in the db, therefore became ghost artists. Had to clean them too.
I cannot explain the mechanism over the history of XBMC versions and MyMusicxx.db version + library cleanups that produced this situation. If I could, we would know it is a bug and find the proper solution. I can only assure you that I arrived to that state using solely XBMC updates and "clean library..." executions.
The album table does not have an Artist key (ID) only strArtist which is of type String and therefore unreliable as relational databases go (cannot assure uniqueness). Only if it had an idArtist key you can relate it to an Artist with certainty, that's why they created album_artist I think, I don't know why they did not use a single table with multiple keys, maybe there is a limitation on SQLite?