在我的员工表中,实体是employee_id, name, type
有3种类型的员工。这些是:ST,WF,WP
因此,当员工信息输入数据库表时将如下所示
employee_id name type
WP 1 john WP
WP 2 doe WP
ST 1 jhonny ST
WF 1 tuna WF
ST 2 tian ST
WP 3 Rian WP
这里的问题是如何根据类型输入
employee_id
自动增量有一种解决方案可能就像它将从表中计算员工类型并根据类型添加
count+1
。但是当多个用户将雇员数据库输入到表中时,多个用户将获得相同的计数,并且employee_id
不会是唯一的问题。我如何获得最佳解决方案?谢谢
最佳答案
您可以尝试在(employee_id,type)上创建唯一索引并捕获异常。
雄辩的:
$employee = new Employee($data);
$saved = false;
while (!$saved) {
try {
$count = Employee::where('type', $employee->type)->count();
$employee->employee_id = $employee->type . ' ' . ($count + 1);
$employee->save();
$saved = 1;
} catch (\Illuminate\Database\QueryException $e) {
}
}
对于非口才:
$type = 'some type';
$saved = false;
while (!$saved) {
try {
$count = DB::table('employees')->where('type', $type)->count();
DB::table('employees')->insert([
'employee_id' => $type . ' ' . ($count + 1)
...
]);
$saved = 1;
} catch (\Illuminate\Database\QueryException $e) {
}
}
关于php - 基于组的自动增量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57344083/