在我的员工表中,实体是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
不会是唯一的问题。
我如何获得最佳解决方案?谢谢
答案 0 :(得分:0)
您可以尝试在(employee_id,type)上创建唯一索引并捕获异常。
雄辩:
<table border=0 cellpadding=10>
<tr>
<td><img src="map1@2x.png" width=30></td>
<td><font size=5>Normal map</font></td>
</tr>
<tr>
<td><img src="map2@2x.png" width=30></td>
<td><font size=5>Satellite map</font></td>
</tr>
<tr>
<td><img src="map3@2x.png" width=30></td>
<td><font size=5>Toner (black and white) map</font></td>
</tr>
<tr>
<td><img src="map4@2x.png" width=30></td>
<td><font size=5>Watercolor map</font></td>
</tr>
<tr>
<td><img src="map5@2x.png" width=30></td>
<td><font size=5>Greyscale map</font></td>
</tr>
</table>
针对非口才的人:
$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) {
}
}