heres the quick background of the app
Basically..
- Multiple users(usually only one) per machine
- local sql server database running on each machine holdings its own data
- WPF app has ability to export data in the table to zip files
As it sits now, I cannot change the environment its on.
I see two options with dealing with saving/uploading attachments to docs(pdf,doc)
currently there are no sizing requirements or required extensions to my knowledge
-
Saving each file as a varbinary directly into the database and using FK’s and a reference table to get those file attachments back in the application for opening
-
Having the same FK’s and reference tables, but I save to file to some folder on the local harddrive(hash + encryption?). Then I rename that file to a generic name and store the name and location of that file in the database.
the first option seems hokey when I dealt with this in web development, but since I had an application server I didn’t have to worry about possible user interference.
I like option two, but the files can be moved by the user and throw everything out of whack, and possibly leaves the option for orphaned child records in the database or orphaned files.
Is there a best practice for this?
If using a supporting version of SQL Server your best bet is to use the FILESTREAM data type as it provides a lot of performance benefits to make it worth while unless all the stored objects will be less than 1MB.
From the article:
Hope that helps!