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

时间:2018-04-06 20:24:57

标签: mongodb oracle cassandra nosql rdbms

对于电子商务Web应用程序的购物车(和结帐流程)的用例,最好使用Relational DB (RDBMS)或 NoSQL DB 作为MongoDB / Cassandra /其他人?

对于目录透视图,NoSQL使用灵活的模式,数据/节点的水平扩展来构建理想的用例。

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

2 个答案:

答案 0 :(得分:3)

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

由于两种数据库类型最终都会起作用,所有这些都取决于上下文或实现。

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

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

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

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

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

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

祝你好运!

答案 1 :(得分:1)

Cassandra与postgres / mysql之类的一般优点/缺点如下:

  • Cassandra可以更好地处理多DC HA。
  • Cassandra可以更好地处理高写入量。
  • Cassandra允许您在没有停机的情况下重启主机,因为您将拥有多个副本(并且您不必担心WAL重放或binlog重放或奇怪的主 - 主复制问题,尽管一些RDBMS插件使MySQL更容易和Postgres比以前一样。)
  • Cassandra允许您更好地扩展(线性扩展,实例数最多可达~1200左右)

  • MySQL / Postgres允许您通过向现有表添加索引来随着业务需求的发展构建查询; Cassandra希望您在开始编写数据之前提前了解查询并进行数据建模。

  • MySQL / Postgres往往更容易使用,而且你会找到大量的库/ UI /等来帮助你入门
  • MySQL / Postgres提供真实的交易/ MVCC - Casssandra的轻量级交易限于单个操作,只有很少的隔离/原子性保证。

但最终,除非您认为您的购物车将处理数千个并发用户,否则它可能并不重要(只要您使用具有真实数据持久性保证的内容):使用您所拥有的内容。最舒服的使用。我使用Cassandra因为我非常了解Cassandra,但如果你对Cassandra(或其他什么)不太好,那就用你最了解的东西。