【问题标题】:Storing data before committing to data base, wait for approval of admin在提交到数据库之前存储数据,等待管理员批准
【发布时间】:2016-05-04 21:36:47
【问题描述】:

我的问题如下:

我正在使用 Ionic 框架构建一个移动应用程序,因此前端本质上是一个单页 AngularJS 应用程序。我使用 Django Rest 框架作为后端。

在应用程序中,员工应该能够建议对数据库模型进行更新、删除或添加。在我的架构中,有一个“联系人”模型(其中包含 first_name、last_name、phone_number 等字段)、一个“GPS 地址模型”(包含 street_name、street_num、city 等字段)和一个总体几乎所有其他模型都与之相关的“交货停止”模型。

我需要实现的是一个系统,员工可以通过该系统建议对现有对象进行编辑,例如具有 FK 关系的联系人(id:45,first_name:'John',phone_number:“435-0000”)到交货站(id:20,标题:“Stop and Shop”,注释:“closes at 0600”)。员工想要将电话号码更新为“435-0001”。但是,在经理审查更新并批准或编辑更新然后批准之前,不应将更新提交到数据库。

我对如何做到这一点有一些想法,但似乎都没有我想的那么容易。有没有人对这种情况下的最佳实践有任何建议?

该应用程序还将包括一个特殊的管理器界面,他们可以在其中几乎所有建议的更新/编辑并批准/拒绝它们。客户端本质上以 Delivery Stop 作为主要对象,它在选项卡式界面中显示所有相关项目(联系人、Gps 地址等)。每次员工提出编辑建议时,相应的经理都会收到一封电子邮件通知。

非常感谢任何建议。

【问题讨论】:

    标签: angularjs django database rest


    【解决方案1】:

    如果这是我的项目,我会将所有更改保存到同一个数据库表中,但我会将名为“WaitingForApproval”的字段标记为 True。然后,您可以为管理员创建一个页面,显示所有等待批准的项目,他们可以批准或拒绝它们。

    如果被拒绝,您可以删除该记录或将名为“已删除”的字段标记为 true,并确保永远不要显示该记录,除非有人特别想查看已删除的记录。

    每当您从数据库中提取数据时,您都需要根据 WaitingForApproval 的真假(通常为假,除非它专门用于管理员批准页面)进行过滤。这样,您可以在同一个表中保留待处理的更改,而不会弄乱应用程序的其余部分。

    或者,如果您已经在应用程序中编写了很多不想更改的查询,您可以将这些待处理的更改保存到不同但相同的数据库表中。当管理员批准后,您的后端代码只会将 PendingChanges 表中的数据复制到 Main 表中。

    【讨论】:

    • 感谢酷博士的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2020-07-30
    • 2016-04-23
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    相关资源
    最近更新 更多