Background: I primarily work on a desktop application that runs in brick and mortar business. There are ~600 locations, and will probably never be more than 1000.
In this app I have a set of classes that represent the data behind a dashboard. Every two minutes the data gets rebuilt from the ground up from a couple dozen different sources within this system (sales, labor, etc).
Now I need to make this data available on the web, and potentially to mobile clients. The data will still be created at the physical location, and will be pushed to the web as it's updated (as a JSON or XML serialization of the class structure).
We only care about the current snapshot of this data, so I'll only be doing Updates (overwriting the last snapshot), and I'm going to replicate / reuse the classes in the Windows app as the Models in the ASP.NET app. This leads me to believe that the ideal table design could be very simple (primary key that maps to the physical location, and the serialized data from the last snapshot). Then I can just pull the last snapshot from the DB, and rehydrate the objects.
This really feels like a perfect candidate for a NoSQL / document DB solution (since I really just need to store a JSON string that represents that snapshot, and my queries would always consist of fetching a single row), but I haven't used any of the various NoSQL offerings, and feel like I may be missing obvious something here.
by hdsrob via /r/csharp