关于多用户操作数据时产生的并发性
最近想设计一个系统,是关于多用户的。数据库用的SQL2008。
多用户的问题是当用户同时插入数据时,是不是造成数据库出错或者数据不稳定?
该怎么解决这样的问题呢。
用数据库的锁机制吗? 当一个用户操作数据时,锁住表使其它的用户不能操作。
还是用排他KEY 呢? 在表里新建个字段标记表是否可用, 当用户操作数据库时先检查一下该表是否可用?
请问我以上的思路是否正确呢。 或者还有其它的好方法? 谢谢了。
------解决方案--------------------数据库有主键。插入数据不会出现你说的什么错误或不稳定吧
------解决方案--------------------调用sql对数据库修改本身是自动上锁的。
如果要保证程序逻辑的一致性需要使用事务。
------解决方案--------------------比如主键递增这种情况,或者只要是有主键。
你程序无论用什么方式,都不可能在数据库中插入两条主键相同的记录。
------解决方案--------------------
LZ的同时多人使用,是否包括一种情况:同时多人修改(包括删除)。如果仅仅是同时多人添加,那么毫无问题。不会有并发问题;
如果存在同时多人修改的可能性的话,那就需要用“开放式并发”或“非开放式并发”。
这2种东西比较特殊,略复杂,其中“开放式并发”相对简单。即:一个人修改并提交,被告知原始数据已被修改,则报错;自己找找这方面资料吧,VS与.NET已经集成了一些简单实现的方法。