Like he said, there is not a definitive answer. For me, the two big boys are Allmusic.com and Discogs.com .
Both take a similar approach of a two level system:
1. Top level genres that are pre-defined and never change. Somewhere between 12 and 18 of these in slightly broad categories like "Pop/Rock" and "Country".
2. A second level of Styles with many, many, many variations. For example, Guns N' Roses would be Genre: Pop/Rock and Styles: Hard Rock. Some might include other Styles for them as well, but I don't. Different albums from artists might be classified with different styles too. For example, "Faith" from The Cure might be classified as Genre: Pop/Rock and Styles: Goth Rock, New Wave, Post Punk . Another album from The Cure might be classified differently since their Goth Rock days ended somewhere after their 4th album or so.
Artists/Albums might have several top level Genres, but usually no more than two. For example, Robert Cray is both Genre: Pop/Rock and Blues (in my collection). Most of the more specific classification is done in the Styles section for most artists.
A note here: The stock fields [Genre] and [Style] don't easily accept multiple values. [Style] I believe is a single value field only. So I created [Styles] and use this instead. [Genre] on the other hand, can hold multiple values, but it's edit type is "standard" so you can't use Panes Tagging or any otherwise convenient ways of specifiying multiple values. You have to manually type ";" between each value. So, you can create a [Genres] field instead, make it a List type and make it's Edit type List as well. This makes it easy to specify multiple values with a click.
Good luck.
Brian.