I currently have several web applications that offer document upload and storage. I am now trying to create a central document management service that these application can leverage to store and retrieve these documents. Currently the documents are stored on disk. The file name is a Guid and its real file name and datatype are stored in a database.
Am I following the right approach whereby I have a database table that stores the documents information (Name, ContentType, CreatedDate, CreatedBy, SystemId etc), and then store the document in a folder on the local file system of the server ?
When I started storing documents, they were originally blobs in the database. This I found an unfavourable approach. My database was suddenly MASSIVE and impossible to backup and restore. Be separating the documents into the local file system the database is now far simpler and my backup strategy easier. (Backup database, File Diff backup from folder)
Is there a more sensible way to do this I am missing? Is there some open source project that I can leverage to improve the design of my new service that I am now making from scratch ?
BLOB/FILESTREAM
into the database. Namely: ACID, ease of backup, size limitation (usually 2GB), portability (not supported by all SQL or requiring a rewrite for cloud computing), etc.