There are many options for managing and playing digital music, and all of them require a certain commitment in terms of time and effort to get your music ripped and tagged properly so that you can quickly find and play what youíre looking for. A couple of years ago, we went with the Squeezebox and its SlimServer software
to manage and play our music collection. Itís brought much enjoyment ever since. (To me, anyway ó Karen probably considers it a typical gadget ó in other words, a pain in the butt for normal people.)
In addition to ripping and then obsessively tagging the music files, Iíve also spent a fair amount of time writing scripts to do things like display on our web site
what the Squeezebox is currently playing. Most recently, I got a bee in my bonnet to build a self-updating list of our music collection
here on theheals.org.
To do so, I planned to write a script that would periodically query SlimServerís database, and with the results, build an XML file of our collection. It all seemed pretty straightforward. The version of SlimServer Iím using (6.3.1) uses SQLite as its database engine. To get a look at the database, I downloaded a couple of the free 3rd party management tools listed on the SQLite web site
My first impression of the database was that it was completely whacked-out. Itís not terribly complicated in that it consists of only a dozen tables:
Ö but it appeared very un-normalized with repeated data all over the place. I also found myself having great difficulty visualizing which tables to cross to get the data I needed to build the list. Crossing two tables I can picture. Crossing three or four, and things start to get a little murky. To get the results returned I was looking for, it looked like I was going to need bits of information from nearly all of the tables in the database.