PHPのフレームワークLaravelに付属のEloquentでは、デフォルトでデータの登録・更新時刻をそれぞれ、created_at, updated_at列で管理してくれます。
通常はこれで問題ないのですが、履歴テーブルのようにデータの登録だけが行われ、更新されない事が事前に分かっている場合は、DBの容量を節約するため、created_at列だけ自動管理しupdated_at列を管理したくありません。
このような場合、以下化のようにtimestampsの管理をfalseにした上で、データ登録時のハンドラでcreated_atを登録するようにすると良いです。
class User extends Eloquent {
// Eloquentによるcreated_at, updated_atの自動管理を行わない
public $timestamps = false;
public static function boot()
{
parent::boot();
// データ登録時に、created_atへ時刻をセットする
static::creating(function ($model) {
$model->created_at = $model->freshTimestamp();
});
}
}
こちらもおススメ