There is a need for a document management system in most large scale applications.
Storing files on the filesystem instead of the database has the following disadvantages:
- it is not portable (ie if you design an application, how do you easily give them access to the files without compromising your security policy).
- file system search is slower than a database (although that may be debatable)
- single backup; you can easily backup and restore databases
- speed; accessing files from a filesystem is almost always faster
- some databases like the free Sql Express have a limited size 4 Gb
Volunteers are needed to build take part in the initial planning.
If you are interested, email me at firstname.lastname@example.org
Ok the next step is to head on over to the discussions section and have your say in the design of the system.
This is the configuration database.
SiteApplication - are applications that will be used to launch files.
SiteFileType - are the different types of files, for ex. .txt, .pdf
SiteFileTypeApplication - maps file extensions to applications that can launch them.
SiteDatabase - this is the config table for a database-based file system and this table contains information about each database, that will be a "drive" on the filesystem.
SiteDatabaseAttribute - variable attributes about the SiteDatabase
This is the ER diagram for a database-based file system.
This is a class diagram of the common library that will be implemented by each concrete "file" provider.