我有一个表格leave_muster
里面,我必须在新月的每个开始时更新上个月的所有记录。
我的代码
public function sync()
{
$pre_month = (int)date('m') - 1;
$data = $this->Leave_muster_model->get_by_month($pre_month);
$updated_data = [];
foreach ($data as $key => $value) {
// Fetch each employee details to perform some check
// Then update the array and
$updated_data[$key] = [
'emp_id' => $value->emp_id,
'accumulated_leaves' => 0.0,
'total_accumulated_leaves' => 0.0,
'leave_taken' => 0.0,
'salary_deducted_days' => 0.0,
'leave_balance' => 0.0,
'month' => date('m'),
'year' => date('Y'),
'created_date' => date('Y-m-d')
];
}
}
}
在上面的代码中,我必须在更新休假之前获取员工详细信息以执行一些检查,所以我有两种方法
- 在更新之前获取循环中的员工详细信息执行检查。
- 获取循环外的所有员工详细信息然后数组按员工 ID 获取员工 执行检查
我想知道哪种方法更好,因为我知道在未来的任何给定时间点都不会有数百万名员工。
郎:菲律宾比索
框架:代码点火器
通常,我认为对数据库的调用很昂贵;我致力于减少脚本执行的数据库调用次数。因此,我可能会加载所有员工,然后运行循环。
这假设不会有很多员工。在这种情况下,您会遇到内存问题。