CD-index suggestion

=?iso-8859-1?Q?Ragnar_Kj=F8rstad?= (cd-inbox nospam at ragnark.vestdata.no)
Wed, 10 Mar 1999 16:26:09 +0100

Hi

I have some suggestions to CD-index. I've just joined the list, so
please excuse me if it has alreaddy been discussed.

I think the database should be divided into three different databases -
one for CD's, one for songs and one for artists. This will make it
easier to extend the database, and also prevent data beeing saved twice
(like data about one artist doing multiple CD's, or data about one song
that appers on more than one CD).

There would have to be ID's for every instance in all the databases, and
liks between the different data. For simplicity I suggest using a
checksum (like md5).

The artist-id can be checksum of the name (or in combination with the
birth-date if name-id's will lead to colliding ID's)

The song-id should be calculated in a way that ensures that the same
song will get the same ID even on different CDs. Will a checksum of part
of the data work? Or will the data be slightly different from CD to CD?

The CD-id can be an checksum of the song-checksum or a checksum of the
TOC - I prefer the former.

With this solution, the database-request would need three fields:
* Type, wich should be CD, song or artist.
* ID an md5 checksum or some other checksum
* Flags should be used to specify for instance
* How detailed the data should be
* Recursive lookups
By recursive lookups I mean that a lookup on a CD should also include
data about the songs and the artists.

Sample response:
[CD:XXXXXXXIDXXXX]
Name,string:
Copyright,string:
Record-company,string:
Cover,url:
Song,id:XXXSONG1XXXXX
Song,id:XXXSONG2XXXXX
Song,id:XXXSONG3XXXXX
Song,id:XXXSONG4XXXXX
Song,id:XXXSONG5XXXXX
Song,id:XXXSONG6XXXXX
Song,id:XXXSONG7XXXXX
[Song:XXXSONG1XXXXX]
Title,string:
Lyrics,url:
MP3,url:
Artist,id:XXXARTISTXXXX
[Artist:XXXARTISTXXXX]
Name,string:
Born,string:
Email,email:
Fan-club,email:
Homepage,url:

The fundamentals:
By providing [Type:ID] in the reply the client can parse an reply that
includes different ID's and of different types (for instance a CD, all
songs on the CD and all rellevant artists)
The identifier,data-type:data syntax makes it easy to add more data
later. A client can be programed to pay attention to a number of
identifiers and ignore the rest, or better still, because of the
data-type the client can use the data to something useful even if it
doesn't know what it is.

I believe the data-types are self-explaining?

Even if it will be slightly more work to implement than the one you use
now, I think it will pay of in the long run!

Ragnar Kjørstad