如何防止一个网站的两个不同的管理员用户创建一个客户记录使用相同的客户ID。
背景资料:
- 检查由允许范围的数字:
网站我与自动生成的实例合作一个名为“客户号”的基础上例行/方法,做以下号码使用cust_number_range表。
- 从客户表中找出正在使用的最高号码。
- 显示“创建新客户”表单上的下一个可用编号。
- 当点击提交按钮时,在尝试保存记录之前,我再次检查客户表以确保我已经计算出的数字,因为下一个可用的表未被使用。如果它仍然可以,那么我保存到数据库。
这里的数据库是什么样子:
customer table
=====================
id integer - primary key
custnumber integer
fname varchar(255)
lname varchar(255)
cust_number_range
====================
lower_range integer
upper_range integer
id integer - primary key
我碰到的问题是,如果两个管理员点击“提交”新卡斯特记录在完全相同的时间,系统将创建两个记录具有相同的custnumber。 以下是我的一些问题:
- 是否使custnumber字段成为pk的一部分可选?这意味着,这真的是“适当的”解决方案吗?
- 我还有什么其他的方式来解决这个问题?
谢谢。
您使用的是什么关系型数据库管理系统,它对您如何执行此操作有所帮助。 – 2013-04-21 22:36:53