Database Content Metadata

Hi All,

I am trying to build a database which will find music that has similar features however to do such I need to enter metadata. I was wondering what is the best way to do such? Currently I have basic data like track name, genre, artist etc. However I want to go deeper than that and define it as something like slow rockers or fast party music or even combining genres. What is the best way to achieve something like that in terms of storing the extra metadata that describes a track and then doing a query to find other tracks that match closely to it?

Any help will be greatly appreciated.

the database would have three tables, tracks, genres, and a relationship table, in the classic many-to-many structure

retrieving similar tracks based on a track’s genre is a medium level difficulty sql query

Am looking for something deeper than just genre. For example for rap you can have hardcore conscious club and spoken word. They are are the same genre but signify different types of the same genre. How can this be done? To link tracks that are even different genres but both have a club type.