Assume multiple collections. Assume a database for each collection. Assume collections may overlap, i.e. a physical song file may be in more than one collection.
Needed: A way to 1) select a databases at start up time (via command line parameter/registry), and 2) switch to another DB while running (similar to a exit followed by a start pointing to the new data base).
A way to use multiple data bases displayed together as a single DB.
DB features to split and join DBs (partial export and import?)
Possible Collection Structure: A root (or base) directory (default to My Music?) contains a MM data base. Point MM to the base; it finds the DB. Option to point MM to a base and a separate DB location/name, so multiple DBs can be kept in a single folder.
Perhaps the DB can contain the root folder so only the DB has to be indicated. If all the DBs were in a common folder then MM could present a list of all .mdb files for the user to select from.
The idea of a root folder could be faked by using an old DOS ASSIGN statement to create a drive letter for the base folder, thus keeping the existing internal DB structure based on drive letter qualifies a song.
Folder monitoring (and maybe some other options) needs to follow the database (if it doesn't already) so that monitoring will not fill one DB with songs from some separate set of folders associated with a different DB.
Enhancements: Be able to logically concatenate, de-concatenate databases so that multiple collections may be viewed together and and apart in arbitrary combinations.
Access song files through generic root node (read drive letter) so that a DB on a server can be mapped to different drive letters by different users. In other words, show path names in DB as ??:\ where ?? is substituted by the letter for (or path to) the desired root node to create the real file name. Probably will need ??1:\ ??2:\ etc. for multi-partiton hard drives.
I'm not a knowledgeable MS JET/SQL person (DB2 and IMS from the dinosaurs
Incremental Development Goals:
1. Pick (locate) the DB at startup via command line switch, backed up by HKCU and HKLM registry entries.
2. Change to another DB "on the fly".
3. Access song files through generic root node (read substitutable drive letter), and let each execution of MM have a different drive letter for song files. Make sure a DB is multi-user sharable.
4. Locate song files via a root path, user specified as a URNC locater. Make sure a DB is cross system shareable.
5. Create several ways to find DB and base path, e.g. DB names the base, DB is a top of base, setup file (.ini) has both, a common (known name) folder has all DBs, etc.
6. Dual data bases -- for example "My Music" and "Shared Music" -- displayed by MM with all entries mixed together. Provisions to keep duplicate songs separated (i.e. qualified by DB) and to locate duplicate songs between the two DBs.
7. Identify/prevent overlapping trees between the two DBs, e.g. figure out soft and hard links which put the same song file in both DBs. This prevents a change in one DB from creating a dead link in the other DB as a side effect.
8. Allow overlapping trees between the two DBs and work to avoid dead links (e.g. a delete request warns that the physical song file is still used in another DB).
9. Partial data base export (only selected entries), Multiple imports (merged imports) into a DB.
10. Upgrade dual DB support to multiple (large number) DB support.
Regards,
Jared
