问题:
如何防止网站的两个不同管理员用户创建具有相同客户 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 字段成为 pk 可选的一部分?意思是,这真的是“正确”的解决方案吗?
- 我还有什么其他方法可以解决这个问题?
谢谢。