Click here to Skip to main content
15,892,768 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hi,

I am working on an MIS system, SQL Server 2008 is used as DBMS. My system also stores scanned documents in separate database. But the size of document database is increasing rapidly. My database server has limited storage, so I am shifting it on a huge NAS drive.

Which other technique I can use for this purpose? Is there any open source document management server available for .net ?
Posted

Store your files outside of SQL server and just save the path in SQL server (like a folder in the filesystem).

If you want to be more ambitious then you can look into Key/Value store database engines to store the documents in.
 
Share this answer
 
Comments
iamalik 9-Jan-14 1:55am    
Thanks for your reply, what technique should I use for retrieval of my documents on filesystem. I have a desktop application and if I want to store my documents on a NAS drive?
Mehdi Gholam 9-Jan-14 7:18am    
Create a server service and have that do the work of interfacing with your client and storing in the filesystem, so you circumvent security and permission management on your NAS filesystem (much cleaner and isolated).
If you HAVE to store them in a DB, try having one DB for metadata and then another DB ( or many DBs ) for files, they can be spread out, so long as the main DB knows where to look, for each file. One reason I can think of to do this, is that you want to store version history. Either way, keep your metadata in a lean and fast DB, and farm off your files to larger storage.
 
Share this answer
 
Comments
iamalik 9-Jan-14 1:58am    
Thanks for reply, initially, I have a separate database for my documents. I don't need to save version history. I want to save my data on a NAS drive containing 1 TB space. How can I do it?
Christian Graus 9-Jan-14 16:15pm    
The two ways listed. First, store the files on the file system and store a path. Second, store in a DB separate to the metadata DB.
For Document Upload:
At the time of document storing,stored the files in physical location(NAS drive) like File Based Repository.For storing the file,just created the directory structure under that.Becasue if you have 1 tb data means huge amount of data. So based on some criteria like filename create the subdirectory in your nas and under that you stored the file.
Also at the time of file stroing,just make entry to database like filename,and physical path.
So in DB ,you just need to stored filename and physical path. I would suggest,you can add one more field in DB as Object ID.its a unique field. This you can use for document retrival perpose.

For document retrival
This thing you can design differnt ways.Like you have file name then quering on db ,it will direclty get the physical path of the file.So you can get that file directly.
But i would suggest you can use cache mechanisam. Write the program in such a way,when you fetch the file ,this program first look cache folder to check folder is present or not.If yes then no need to go database.You can direclty get the file from cache.If document not present in DB ,then only go to DB and write the document to cache folder and from that folder you can retrive the document. Also from cache folder you can clean up the document that are not accessed by more than 30 days.So it will be fast retrival and also you are not direclty fecting document from physical location so it secure also.

There are more open source program that can you for document management.
like Alfresco etc.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900