【问题标题】:Angular2 Data Storage ArchitectureAngular2 数据存储架构
【发布时间】:2016-08-30 22:45:21
【问题描述】:

我正在为企业客户开展一个新项目,并且正在考虑基本的架构决策。迄今为止我的经验是 .NET 应用程序、WPF 和 Flash,但这个新项目必须是 Web 交付的,我打算将 Angular 2 用于客户端应用程序,所以我没有什么经验,只有常识和研究才能绘制上。

这个项目无疑会随着它的发展而发展,虽然我对 MS SQL 很熟悉,但我知道随着模式的变化和表的调整,管理起来有多么困难。我喜欢 Microsoft Web API 作为服务提供者的外观,虽然它对我来说是全新的,也许 MongoDB 的灵活性,但除此之外我一无所知。如果有任何影响,该项目可能会在不久的将来从我自己的安全服务器转移到 Azure 位置。

这个项目可能会发展并在未来 15 年内使用,所以我需要一些稳定性,而不是当前的“热门解决方案”。我认识到我需要为改变而设计,但我想尽量保持长期维护的简单性。

任何人都可以提出一个好的、强大的解决方案,该解决方案可以很好地扩展,有大量资源可以帮助开发,并且解决方案或拥有的公司有良好的记录?

我期待听到您的想法。

克里斯

【问题讨论】:

    标签: database angular architecture


    【解决方案1】:

    关于后端

    对于这个问题,使用Microsoft Web API 或其他后端服务无关紧要。你必须选择一个你喜欢编写代码并尽快完成工作的人。 这里最重要的一点是您如何交付 API 数据以及如何存储这些数据。

    关于数据传递

    我建议您使用 REST API 和 JSON 格式的交付数据。使用 Angular,您可以轻松地与 REST API 进行通信。

    关于数据库

    架构和数据丢失

    RelationalNon relational 数据库有不同的目标。一种在模式上更灵活,但对数据丢失和一致性的安全性较低。另一个在防止数据丢失方面的安全性更好,但具有静态模式。其他人则试图同时实现一致性和灵活性。

    如果您的应用程序将用于保存敏感数据,我认为最好使用SQL。如果您的应用程序没有敏感数据,您可以使用NoSQL 并享受架构灵活性。

    您还有第三个选项,使用一些混合数据库作为PostgesSql,它也实现了NoSQL

    读写

    SQL 在将数据写入 DB 方面具有更好的性能,因为您的单例数据仅存储在一个位置并由其关系使用。但是 SQL 在读取数据时性能较差,因为我们需要使用 join 从多个表中获取数据,以避免数据冗余和不一致。

    NoSQL 的读取性能比写入性能更好,因为我们使用嵌套模式,并且文档可以在其中包含其子数据,因此您无需读取另一个表(集合)即可获取嵌套数据。所有信息都在文档中,甚至是儿童数据。另一方面,在NoSQL 中写入比在 SQL 中慢,因为您必须在子表和父文档中插入/更新数据,因为我们曾经有更多的冗余数据。另一件事是一致性,因为您必须在多个表(集合)中写入相同的数据,如果我们忘记更新某些文档,这可能会导致一些问题。

    希望我的观点可以帮助您找到适合您项目的更好解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-09
      • 2017-09-10
      • 2011-07-15
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多