为方便起见,laravel会在每张桌子上生成updated_at
列,这真是太棒了。我可以轻松跟踪哪些行已更新。但是如果我想在我的应用程序中引入日志/历史/活动功能呢?
目前,laravel回答了这个问题:
时更新了哪一行?
我如何得到这个问题的答案:
连续更新了什么?
答案 0 :(得分:2)
假设您希望跟踪用户表中的更改,那么您的架构看起来像
用户强>
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
现在,创建活动日志表,如
活动记录
public function up()
{
Schema::create('activity_log', function (Blueprint $table) {
$table->increments('id');
$table->increments('user_id');
$table->enum('changed_column',['name','email','password']);
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users');
});
}
现在,每当您更改用户列表时,请将更改了哪个列的详细信息添加到活动日志表中。根据时间戳,您可以跟踪用户的哪一列被更改。
我希望你明白。
答案 1 :(得分:0)
在其中一个表中,在json字段中保存最后更新的字段名称