我目前正在开发一款应用,并且在laravel中保存历史记录和未来条目及其关系(多对多)时会遇到问题。
我有3张桌子:
任务表包含任务的数据。 members表包含单个成员的数据。 任务可以有多个成员,成员可以参加多个任务。 在任务运行之前,任务以及成员数据都可以改变。 第三个表格包含了这些现实。
现在我的要求是保存(以及稍后使用)此数据的所有修订版本以保存将来可用的条目。删除不会发生,因为我必须保留带有软删除标志的条目。 要求我可以获得这种实现的每个状态以及给定时间戳的实体的每个状态(加入这些表也需要工作)。
在Mission Model中有一个belongsToMany函数:public function members() {
return $this->belongsToMany('App\Member')->withTimestamps();
}
和成员模型中的相同功能:
public function missions() {
return $this->belongsToMany('App\Mission')->withTimestamps();
}
实现多对多关系或实现任何模型的版本或修订也不是问题。
我已经尝试了mpociot / versionable和venturecraft / revisionable软件包,但那些并没有帮我解决问题。 但是如何实现模型数据的版本化(未来版本)和两个模型之间的关系?
所以我的问题是:实现这个的最佳方法是什么?我尝试过的所有内容都会导致过去参赛作品之间失去关系。