【问题标题】:Review before writing to database from UI在从 UI 写入数据库之前进行审查
【发布时间】:2015-12-16 05:32:49
【问题描述】:

这更多是关于设计方法的问题。我有一个包含以下详细信息的应用程序:

  1. Angular 中的用户界面
  2. UI 使用 Node/Express 中的 api
  3. 数据库目前只是一个 JSON 文件。

我想从 JSON 文件转移到 mongoDb。我想要的是,每当有人使用 UI 对数据库进行更改时,我都想在数据库中更新之前查看这些更改。实现这一目标的最佳方法是什么?

使用 JSON 文件对我来说更容易,因为我在 git 上创建了一个拉取请求,我将在其中查看所有更改然后更新。

我的想法:

  1. 让 UI 写入单独的克隆集合(表),然后查看它们并相应地更新主集合。不确定这是否是正确的做法。

【问题讨论】:

    标签: json node.js mongodb architecture


    【解决方案1】:

    您自己是想要查看更改,还是希望最终用户在保存前查看?如果是,你有几个选择:

    • 您可以创建待处理对象的 mongodb 集合,一旦获得批准,它们将被移至不同的集合。这没关系,但不是很好,因为您最终会穿梭对象,使用标志进行聚合分组而不是基于集合的描述可能更合理
    • 您可以简单地将对象上的属性用作标志,然后在启用该标志的情况下将待审核的对象发送到您的数据库(使用诸如true、1 之类的某些属性或另一种说法“这是真的/开启/启用等”)

    如果您希望最终用户能够保存,您可以使用 mongoose 钩子/中间件来触发验证器或您想要的任何东西,并将包含有意义数据的响应返回到您的 Angular UI。从那里,您可以让用户“查看”他们正在保存的内容。这不会持续存在或被保存,只有在他们再次发送所有内容后才会保存(如果这是您选择构建保存过程的方式)。

    【讨论】:

    • 是的,我正在考虑一个待处理对象的集合。但我想 flag 方法可能是一个更优雅的解决方案。感谢您的想法。
    • 确定!此外,IMO 未决对象使得聚合变得更加困难,因为您将使用集合作为边界标记。还有一个方面是它对 NoSQL 模型不太习惯——也就是说,你应该能够拥有任意数量的给定类型的对象,并按属性对它们进行排序:)
    • 太棒了!乐于助人:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2019-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多