我有一个表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')
];
}
}
}
在上面的代码中,我必须在更新叶子以执行某些检查之前获取员工详细信息,所以我有两种方法
我想知道哪种方法更好,因为我知道在将来的任何给定时间点,桌子上都不会有数百万的员工。
语言:PHP
框架:Codeigniter
答案 0 :(得分:3)
通常,我将对数据库的调用视为昂贵;我努力减少脚本执行的数据库调用次数。因此,我可能会加载所有员工,然后遍历整个循环。
这假设员工人数不多。在这种情况下,您会遇到内存问题。