为了防止多人同时操作数据库中的同一条记录,需要在设计时考虑到表的排他操作。
下面是我用到的两种方式。
一、使用排他表
1.创建一个排他表,用来保存要操作表的表名和数据的主键。
2.操作数据前,先查询排他表,看是否有数据。如果存在,则表示有程序正在操作这条数据。如果不存在,则向排他表插入数据。
3.操作完成后要在排他表中删除这条数据。
4.排他表中最好增加一个userid字段,用来判断排他数据的创建者,同一个用户可以操作被锁的数据。这样防止数据库操作发生异常,任何人无法操作这条被锁的数据。
二、使用updatetime字段
1.在所有表中增加updatetime字段
2.操作数据前查询该字段,操作时再查询该字段。
3.如果2次的updatetime相同,则表示这条数据没有被修改过。如果不一致,表示已经被修改了,不能再操作。
4.操作数据后,修改updatetime字段。