对于电子商务Web应用程序的购物车(和结帐流程)的用例,最好使用Relational DB (RDBMS)或 NoSQL DB 作为MongoDB / Cassandra /其他人?
对于目录透视图,NoSQL
使用灵活的模式,数据/节点的水平扩展来构建理想的用例。
购物车用例的每种方法的优缺点是什么?
答案 0 :(得分:3)
SQL和noSQL数据库之间存在许多差异。这些差异是每种存储类型在不同情况下的优缺点。
由于两种数据库类型最终都会起作用,所有这些都取决于上下文或实现。
在这种特定情况下(购物车),利弊可能都与数据的一致性和可扩展性有关。
noSQL数据库更适合(专业)适用于更多“动态”应用程序(数据分析,物联网,多媒体等)。这些应用程序使用的数据通常不具有刚性结构,并且数量非常大。这意味着不需要开发复杂的数据库模型,并且在单独的“节点”中存储大量数据的成本更低。这也使得无数据库数据库更容易扩展和扩展。主要问题(缺点)是缺乏结构。这将使您更难以运行分析并跟踪数据库的每个细节。
同时,当您的数据结构良好且大部分一致时,SQL数据库非常有用(专业)。如您所知,SQL将数据存储在列和行中,如果您希望生成数据的详细统计信息,并且您希望保留应用程序中发生的所有内容的有组织记录,则SQL将为您提供优势。主要缺点(缺点)是SQL数据库的设计需要更多时间,而且维护SQL数据库可能更昂贵(可扩展性和物理存储需要更多硬件)。
Performancewise,我认为在这个用例中不会有任何重大差异。
如果你考虑我刚写的所有内容,我会说在购物车的上下文中,SQL模型是可行的方式。购物车不需要大量升级和更改(可扩展性),其数据始终是结构化的(项目名称,价格等),您可能希望跟踪用户在您的电子商务应用程序中进行的每笔交易(对于问责制和安全理由)。
tl; dr 使用SQL,因为shoppingcart用例中的数据是结构化且一致的。
祝你好运!答案 1 :(得分:1)
Cassandra与postgres / mysql之类的一般优点/缺点如下:
Cassandra允许您更好地扩展(线性扩展,实例数最多可达~1200左右)
MySQL / Postgres允许您通过向现有表添加索引来随着业务需求的发展构建查询; Cassandra希望您在开始编写数据之前提前了解查询并进行数据建模。
但最终,除非您认为您的购物车将处理数千个并发用户,否则它可能并不重要(只要您使用具有真实数据持久性保证的内容):使用您所拥有的内容。最舒服的使用。我使用Cassandra因为我非常了解Cassandra,但如果你对Cassandra(或其他什么)不太好,那就用你最了解的东西。