电子商务/购物车(和结帐流程):使用关系或 NoSQL

Ana*_*ika 3 oracle rdbms mongodb cassandra nosql

对于电子商务 Web 应用程序的购物车(和结帐流程)用例,使用关系数据库(RDBMS) 或NoSQL DB作为 MongoDB/Cassandra/others哪个更好?

从目录的角度来看,NoSQL使用灵活的架构、数据/节点的水平扩展成为理想的用例。

购物车用例的每种方法的优缺点是什么?

mac*_*azo 6

SQL 和 noSQL 数据库之间存在许多差异。这些差异决定了每种存储类型在不同情况下的优缺点。

由于这两种数据库类型最终都可以使用,因此这完全取决于上下文或您的实现。

在这种特定情况下(购物车),优缺点可能都与您的数据的一致性可扩展性有关

noSQL 数据库更适合(优点)更“动态”的应用程序(数据分析、物联网、多媒体等)。此类应用程序使用的数据通常没有严格的结构并且数量非常大。这意味着无需开发复杂的数据库模型,并且在单独的“节点”中存储大量数据的成本更低。这也使 noSQL 数据库更易于扩展和扩展。主要问题(缺点)是缺乏结构。这将使您更难运行分析并跟踪数据库的每个细节。

同时,当您的数据结构良好且基本一致时,SQL 数据库非常有用(优点)。如您所知,SQL 将数据存储在列和行中,如果您想生成数据的详细统计信息,并且如果您想保留应用程序中发生的所有事情的有组织的记录,这为 SQL 提供了优势。主要缺点(缺点)是 SQL 数据库的设计需要更多时间,而且维护 SQL 数据库可能更昂贵(可扩展性和物理存储需要更多硬件)。

在性能方面,我认为在这个用例中不会有任何重大差异。

如果你考虑一下我刚刚写的所有内容,我会说在购物车的上下文中,SQL 模型是要走的路。购物车不需要大量升级和更改(可扩展性),它的数据始终是结构化的(商品名称、价格等),您可能希望跟踪用户在您的电子商务应用程序中进行的每笔交易(例如问责制和安全原因)。

tl;dr使用 SQL,因为购物车用例中的数据是结构化且一致的。

祝你好运!