首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >电子商务/购物车(和结帐流程):使用关系或NoSQL

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

Stack Overflow用户
提问于 2018-04-07 04:24:57
回答 2查看 5K关注 0票数 3

对于电子商务web应用程序的购物车(和结账流程)的用例,使用关系型数据库管理系统( Relational DB,RDBMS)或NoSQL DB作为MongoDB/Cassandra/其他,哪个更好?

对于目录透视图,NoSQL提供了灵活的模式、数据/节点的水平扩展的理想用例。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-10 01:10:09

SQL和noSQL数据库有很多不同之处。这些差异使每种存储类型在不同的情况下各有优缺点。

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

在这个特定的案例(购物车)中,利弊可能都与您的数据的consistencyscalability相关。

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

同时,当您的数据结构良好且基本一致时,SQL数据库非常有用(优点)。正如你所知道的,SQL以列和行的形式存储数据,如果你想要生成数据的详细统计数据,或者如果你想要对应用程序中发生的一切进行有组织的记录,这就给了SQL一个优势。主要的缺点(缺点)是SQL数据库的设计需要更多的时间,而且维护SQL数据库可能更昂贵(可伸缩性和物理存储需要更多的硬件)。

从性能上讲,我认为在这个用例中不会有任何重大的区别。

如果你仔细考虑我刚刚写的所有东西,我会说在购物车的上下文中,模型是的方式。购物车不需要大量的升级和更改(可伸缩性),它的数据总是结构化的(商品名称、价格等)。您可能希望跟踪用户在您的电子商务应用程序中进行的每一笔交易(出于责任和安全原因)。

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

祝好运!

票数 8
EN

Stack Overflow用户

发布于 2018-04-12 14:20:48

像Cassandra和postgres/mysql这样的东西的优缺点大致如下:

RDBMS Cassandra处理多DC高可用性许多better.

  • Cassandra处理高写入容量许多better.

  • Cassandra允许您在不停机的情况下重启主机,因为您将有多个副本(而且您不必担心WAL重放、binlog重放或奇怪的主-主复制问题,尽管一些MySQL和Postgres插件使这一点比过去更容易)。

  • Cassandra允许您更好地扩展(线性扩展的实例数量高达1200左右,RDBMS允许您通过在现有表中添加索引来随着业务需求的发展而构建查询;Cassandra希望你提前知道查询,并在开始编写data.

  • MySQL/Postgres之前进行数据建模,这样更容易使用,你会发现大量的库/UI/等可以帮助你获得started

  • MySQL/Postgres提供真正的事务/ MVCC -Cassandra的轻量级事务仅限于对单个键的操作,具有更弱的隔离性/原子性保证。

不过,最终,除非您认为购物车将处理数千个并发用户,否则这可能无关紧要(只要您使用的是具有真正数据持久性保证的东西):使用您最舒适的使用。我会使用Cassandra,因为我非常了解Cassandra,但是如果你对Cassandra (或者其他什么)不太熟悉,那就用你最了解的吧。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49700533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档