[英]Approval of edits
我想知道最好的解决方案,用于审查需要管理员批准的用户编辑。
目前,我有一个带有以下字段的Users
表。
我有一个具有以下字段的关系表user_profile
我也有一个表pending_user_profile
用于批准
目前,我正在检查pending_user_profile表中是否存在user_id,以在应用程序的编辑屏幕中显示未决数据。
我像这样检查它: PendingUser::where('user_id', $this->id)->exists();
还显示管理员的待处理数据。 (基本上,我只是将所有内容都保存在“ pending_user_profile”中。因此,管理员知道哪些用户在此处编辑了信息。
我正在获取这样的数据: PendingUser::all();
第一个问题:我不确定在有大量用户时这将如何保持下去。 因此,即时通讯试图为此找到更好的解决方案,或者想知道即时通讯使用的解决方案可能完全正常,我完全不必担心。 我检查未决字段的方法是否是好方法?
第二个问题:在存储待处理字段时,我不确定如何处理。 在提交给未决字段之前,我应该比较所有字段吗? 这样,我只是存储更改的字段。 此选项的缺点是我必须从2个单独的表中获取数据。
任何帮助将不胜感激。
提前致谢!
我不会为此创建另一个表。 只需在您的user_profile
表中添加version
和status
即可。 如果用户对其进行编辑,请创建一个新记录,该记录具有较高的版本,并且状态为pending
。 您可以进行比较。 如果管理员接受,请将状态设置为active
然后删除或保留前一个状态。
然后,您可以为用户设置两者的关系:
public function pendingProfile() {
return $this->hasOne('UserProfile')
->where('status', 'pending')
->orderBy('version', 'desc');
}
public function currentProfile() {
return $this->hasOne('UserProfile')->where('status', 'active');
// Here you can also take the latest version if you delete any other active,
// or add the where and order as above to get the latest
}
如果您不介意添加新表:
我建议我在此链接中找到并询问有关的数据库结构: 在此链接中
通过保存多个表更改,每个表都有其不同的结构,我在此系统上得到了很好的反馈。 而且我还应该告诉我,我正在使用Zend Frameword.so为用户,他们的更改需要管理员批准,我不使用例如产品模型。我使用了另一个名为ChangeApprovalNeededProduct模型的母亲来扩展产品模型,但是当对他们调用保存方法时,我会阻止从保存更改到产品表的系统,而不是我将更改的数据收集在键值表中,并将它们保存在其他名为更改表的地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.