问题:
如何阻止网站的两个不同管理员用户创建具有相同客户ID的客户记录。
背景资料:
我正在使用的网站根据执行以下操作的例程/方法自动生成一个名为“客户编号”的编号:
这是数据库的样子:
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
我遇到的问题是,如果两个管理员在同一时间单击“提交”新的cust记录,系统将创建具有相同保留号的两个记录。 以下是我的一些问题:
感谢。
答案 0 :(得分:0)
您应该使用唯一列。但是我也会从代码中检查,然后在将用户添加到数据库之前,检查用户是否不存在,如果没有,则只添加。
答案 1 :(得分:0)
您需要按顺序排列数字吗? 您可以创建“索引”表。
index_table
====================
index_type integer (possible values - 1 for customers, 2 for orders, etc.)
last_index integer
每次创建新客户时,都可以通过推进last_index id字段从索引表中为用户创建索引。 如果用户未保存记录,则只需跳过ID。
大多数数据库都有一个具有类似机制的record_id,所以我建议使用它。