>How do I ensure that all changes are accumulative. The last user to update a particular field (say dt3) should stick, but any changes made in the meantime by other users to dt1 or dt2 should not be overwritten when dt3 is saved. How can that be achieved?
In an optimistic mode like this, once the second user saves, usually we prompt him with the information that has changed since he pulled the record. For example, if two fields changed, then we may show that to the user and act accordingly. Usually, there would be some business rules for this. Some may have rights to overwrite previous changes others not. So, some questions may apply at save time in such circumstances asking the user if he really wishes to continue to save.