On 3/29/07, Rich Shepard <[EMAIL PROTECTED]> wrote:

On Thu, 29 Mar 2007, Jonas Sandman wrote:

> I am quite new at database and how to set them up properly so keep in
mind
> that the obvious might stare into your face but just point it out to me

Jonas,

   I strongly recommend that you read a book on database design. You have
a
single, flat-file database that should be a multiple table, relational
database (e.g., multiple titles for the same artist: what if you mis-spell
an artist's name? Or that name changes?)


I guess I could split it into more tables, but would that really make
anything faster?
The whole key is the filename, I query for files in specific filepaths, so
it doesn't matter if something is mis-spelled. Rather I encourage the
possibility that it can be.

  Having the path as the primary key means that each database record is in
a
different subdirectory, and that they're all unique. What value does the
path provide?


So what should I use as a primary key then? The path?

  How do you handle having a title (or artist) classified in more than a
single genre? What if one of those changes, can you be sure you've made
all
the changes scattered throughout the database?


Since one file is one row in the database I rather liked the idea that I
didn't have to scatter around updating a lot of tables. I am using the
database instead of a large memory table like I used before.

CREATE TABLE Files (path VARCHAR(255) PRIMARY KEY, title VARCHAR(255),
> artist VARCHAR(255), album VARCHAR(255), genre VARCHAR(255), comment
> VARCHAR(255), track INTEGER, year INTEGER, length INTEGER, bitrate
INTEGER,
> playcount INTEGER, changed INTEGER, size INTEGER, tagged INTEGER,
extension
> VARCHAR(5), file_exists INTEGER)";

   Stop what you're doing and learn how to do it properly and more
efficiently.

Rich

Reply via email to