Well, I have to agree with NWP that this has been an interesting thread,
one of those that takes on a life of its own... it started out with a
debate about the merits of case sensitivity, did a neat hand-brake turn
on the point of whether databases should be case sensitive at all, and
has now lurched off into a familiar debate on the role of the
slimserver database! Especially entertaining is the bit where someone
comments on one topic and has their message interpreted as if it were
on another one!

Having joined in the first bit, I can't resist joining in the later
stages, though, so here is my two penn'orth on the slimserver
database...

I'm pretty sure that for the large majority of users, the current model
is correct, i.e. that the tags are the source of data and that the
slimserver database is purely for the convenience of slimserver.  This
works well because all the ripping programs or download sources provide
more-or-less standard tags.

However, since slim have gone to the trouble of providing a "proper"
database, it would be a real shame if we couldn't use it  in a lot more
interesting ways. This, I understand, is one of the motivations for
moving to MySQL, and I think we see the beginnings of what might be
done with erland's plugins.

The big issue with the slim database, though - as has been mentioned
here as previously - is that it is considered "throwaway", which
effectively stops anyone putting interesting information in it.  And
no, "tags" are not the full answer - I can easily imagine data which is
not solely about a track and which therefore doesn't rightly belong in a
track's tags (e.g. any information about the relationship between two
tracks).

So if we are going to store relational information somewhere, AND we
want to keep the open principles of slimserver (i.e., its easy for
third parties to add functionality and plug in), we need to establish
some principles:

(1) there is some basic player information that slimserver needs to be
able to play tracks. This has to be generated from somewhere (today,
from tags).  The data model for this stuff is slimserver's to own: the
slimserver developers need to be able to make changes to this in future
versions without reference to anyone.

(2) the writers of plugins to slimserver will want the ability to add
extra information in tables of their own (eg Lazysearch). At the moment
they are limited to storing information that can easily be regenerated,
but in the future they really ought to be able to store stuff
persistently somewhere (possibly in a different database).

(3) we need to acknowledge that there are other programs and databases
out there, which people like JSonnabend want to use for a variety of
purposes beyond the knowledge of slim, and which slimserver really
ought to be able to co-exist with.

So, I think there potentially three different kinds of RELATIONAL data
(i.e. in addition to the data that can easily be stored in tags):

(1) the data owned by slimserver for the purposes of playing tracks
(2) additional data used by slimserver plugins for whatever purpose
(3) data managed by applications that slim knows nothing about at all

I suspect the three need to be stored in different databases.  Also
that the right answer for JSonnabend is to provide an easy means of 
transferring the relevant data from the external database into the
slimserver one: as MichaelWagner says, file tags are a simple and
standard way of doing this... one drawback I can think of is that you
lose the ability to transfer any relational data. Another is that it's
not the right answer for dynamic data like "last played".

If you don't want to use tags as a communication route, I think you
have to link the two databases up (though it creates a maintenance
problem for someone).  I don't think the answer is to try to shoehorn
it all into one database, that would cripple both sets of developers.

I'll stop now before my ramblings take on a life of their own, like
this thread.....

Ceejay


-- 
ceejay
------------------------------------------------------------------------
ceejay's Profile: http://forums.slimdevices.com/member.php?userid=148
View this thread: http://forums.slimdevices.com/showthread.php?t=24093

_______________________________________________
discuss mailing list
discuss@lists.slimdevices.com
http://lists.slimdevices.com/lists/listinfo/discuss

Reply via email to