ソファ/改訂可能なパッケージ(または同じアクションを実行する他のパッケージ)を使用してlaravel 5.3の変更を追跡したい
表は次のとおりです。
item
id - primary key
title - text
item_fields
id - primary key
title - name of the field
item_field_values
item_id - foreign key to item(id)
field_id - foreign key to item_fields(id)
value - text
例
item
1 - "John"
item_fields
1 - "email"
2 - "last login time"
3 - "balance"
item_values
1 - 1 - "john@example.com" // email
1 - 2 - "01.11.2016 11:30:03" // last login time
1 - 3 - "$38" // balance
たとえば、ユーザーの残高はユーザーのログオンと同時に変更されるため、リビジョン テーブルには次のような内容が含まれます。
"For user 1 last login time changed from 01.11.2016 11:30.03 to 02.11.2016 10:20:00"
"For user 1 balance changed from $38 to $36.50"
これらは 2 つの別個のフィールドであり、互いに関連していません。それらを として表示したいone change
が、異なる変更はしたくない場合、これらのフィールドは互いにリンクしていないため、これを行うことはできません。
別の例では、新しい行がリビジョン テーブルに追加されます
"For user 1 balance changed from $36.5 to $33"
1枚差です。
異なるフィールドから関連する変更を 1 つの一括リビジョンとして選択するにはどうすればよいですか? 多くの item_fields (数百) があります。テーブルcreated
内の行の時間に頼ることはできません。revisions
laravelのすべてのリビジョン関連パッケージの問題は、1つのモデルのすべてのフィールドへの変更を追跡することですが、私の場合、1つのモデル(item_field_values)がありますが、1つのリビジョン/バージョンには多くの変更された行が含まれる可能性があります.