Din cate vad lucrezi cu SQL 2005. Incearca sa urmezi exemplul de aici:
http://weblogs.sqlteam.com/mladenp/archive/2006/10/14/14032.aspx
Ideea este sa pui "atributele" unui produs (in cazul tau "genre", "publisher", etc) intr-un camp avand tipul de date XML, si sa cauti dupa atribute folosind acest camp (indexat in functie de cautari, asa cum expune BOL). Eu nu am testat astfel de situatie, dar cred ca merita incercat...vorba autorului: "In the end the xml datatype in sql server starts to make sense" 