+1  A: 

Interesting question:

Synchronising data can get quite complex as overwriting data updated by other uses can easily happen, especially if this is done by table row. Ideally you would have a last updated date on the row for each field creating latest-wins scenario when synchronising with the online database.

A simple workflow, keeping things simple:

The online database would be the master database, where each desktop will sync from time to time, I guess the desktop will need to send all changes since the last sync date to update the Master and then download all records (new and updated as these could have been changed by other users) from the Master from that last sync date.

If the desktop is connected to the internet, it might be worth connecting directly to the database. Alternatively if its a laptop thats on the go, I guess the sync setup would be required.

Mark Redman
A: 

You requirement seems to me like have different presentations of the same application for different users. Some connected to Web and some to Desktop. Is it not possible to have a single database ( assuming you are on the network where database server is present and can access the same) for both web and desktop.

Did you think of developing it with a smart client approach? I read that it does give us offline data cache capability.

Here is some MSDN link: http://msdn.microsoft.com/en-us/library/ms998473.aspx

Neha Roy