Then John clicks Save on an Edit page that still shows a budget of 0,000.00.
What happens next is determined by how you handle concurrency conflicts.
Before Jane clicks Save, John visits the same page and changes the Start Date field from 9/1/2007 to 9/1/2013.
Jane clicks Save first and sees her change when the browser returns to the Index page.
If your application does need to prevent accidental data loss in concurrency scenarios, one way to do that is to use database locks. For example, before you read a row from a database, you request a lock for read-only or for update access.The two browser tabs now display the same information. The value you entered in the second browser tab is saved.Change a field in the first browser tab and click Save. You see the saved values when the Index page appears.If you lock a row for update access, no other users are allowed to lock the row either for read-only or update access, because they would get a copy of data that's in the process of being changed. It requires significant database management resources, and it can cause performance problems as the number of users of an application increases.If you lock a row for read-only access, others can also lock it for read-only access but not for update. For these reasons, not all database management systems support pessimistic concurrency.