私はLaravel Frameworkでカスタムモデルのバージョン管理を実装しました。データベーステーブルでそれを扱ういくつかの列があります:sibling_id
(モデルの異なるバージョンをリンクします)、version
、accepted
およびvalidFrom
です。例えばLaravelは現在のバージョンのモデルのみを取得します
:私は現在のモデルとはどういう意味
| id | sibling_id | version | accepted | validFrom | ... |
|----|------------|---------|----------|------------|-----|
| 1 | 1 | 1 | 1 | 2017-12-01 | |
| 2 | 1 | 2 | 1 | 2018-06-01 | |
| 3 | 2 | 1 | 1 | 2017-12-10 | |
| 4 | 2 | 2 | 0 | 2017-12-28 | |
| 5 | 3 | 1 | 0 | 2017-12-01 | |
:
- モデル「があるにISN場合は受け入れられ、有効なモーダル
- ORバージョン1内の最大のバージョン番号を持ちます他のバージョン
通常、現在のモデルはsibling_id
でグループ化されています(この例では、コレクションにはモデル1,3,5が含まれていなければなりません)。これはLaravelのwithTrashed()
関数と同じように動作するので、必要ならばすべてを含めることができます(たとえば、バージョン履歴)。
これはどういうわけかスコープで行うことができますが、「兄弟グループ」と他の複雑なフィルタのために複雑に感じたので、ここで質問しました。
ありがとうございます。