I am tasked with finding the best way to store data in the cloud. The application will be used by thousands of small, autonomous non-profit organizations. The data for each organization will need only a few (4 or 5) tables. The largest table for the largest organization will contain no more than 3000 rows; the largest table for the average organization will contain about 200 rows.
Each organization will need to access its data daily, but the number of transactions will be limited. It is possible (but not likely) that many organizations – perhaps hundreds – will need access to the data at the same time. Only one person at each organization will need access to the data.
Data storage costs are extremely important – these are small non-profits with minimal funding. The data will be accessed from a C# Silverlight app.
I am open to any solution; I’m not locked into using a traditional database.
This is a one-man, part time project without time sensitivity. I do not have access to database or cloud specialists; although I’m an ex开发者_运维知识库perienced developer I have little database and no cloud experience.
Again, storage costs must be kept to an absolute minimum, ideally no more than few dollars per organization per year.
Can you suggest how I might accomplish this?
Thanks in advance!
Use DropBox (free < 2GB) and a SQLIte database file.
I would suggest SQL Server Express or MS Access as Database.
Unless I'm mistaking something, it seems like you could host a good old database per customer on a cheap host (or use a single database with multiple schemas, if it your favorite one allows that). It'll only cost you a few bucks per month. Surely your sales revenue would cover that, no?
It would not be a good idea to store the data from each of your thousands of non-profit organizations in the same single shared SQLite database, as that would lead to concurrency issues even if only one user per non-profit was using the database. Neither would it be a good idea to give each customer their own dedicated SQLite database because then when you make a schema change (difficult enough already with SQLite) you have to make the same change thousands of times. It would be best, I think, to create a single database but give each non-profit its own "virtual private database". I recommmend that you get a price quote on an Oracle-based cloud database, because Oracle has had this "virtual private database" feature for years now.
http://download.oracle.com/docs/cd/B28359_01/network.111/b28531/vpd.htm
精彩评论