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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (46)

对于电子商务web应用程序的购物车用例(和结帐过程),有什么更好的方法是使用Relational达布(RDBMS)或NoSQL DB作为MongoDB/Cassandra/其他人?

对于目录透视图,NoSQL具有灵活的模式、数据/节点的水平缩放,使其具有理想的用例。

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

提问于
用户回答回答于

SQL和NoSQL数据库之间有许多不同之处。

由于这两种数据库类型最终都能工作,所以这一切实际上取决于上下文或实现。

在这个特定的案例中,利弊可能都与一致性你的数据可伸缩性

NoSQL数据库更适合于更“动态”的应用程序(数据分析、物联网、多媒体等)。这样的应用程序使用的数据通常没有严格的结构,而且体积很大。这意味着不需要开发复杂的数据库模型,而且在不同的“节点”中存储大量数据也更便宜。这也使得NoSQL数据库更易于扩展和扩展。主要的问题(缺点)是缺乏结构。这将使你更难运行分析和跟踪数据库的每一个细节。

同时,当数据结构良好且基本一致时,SQL数据库是有用的(优点)。SQL将数据存储在列和行中,如果想要生成详细的数据统计信息,并且希望对应用程序中发生的一切进行有组织的记录,这将使SQL具有优势。主要的缺点(缺点)是SQL数据库的设计需要更多的时间,而且维护SQL数据库可能更昂贵(可伸缩性和物理存储需要更多硬件)。

会说在购物车的上下文中,sql模型是可行的。购物车不需要大量的升级和更改(可伸缩性),它的数据总是结构化的(项目名称、价格等),可能希望跟踪用户在电子商务应用程序中进行的每一次事务(出于责任和安全原因)。

TL;DR使用SQL,因为购物车中的数据是结构化和一致的。

用户回答回答于

类似Cassandra与Postgres/MySQL这样的东西的一般利弊如下:

  • 处理多DC HA更好。
  • 处理高写入量要好得多。
  • Cassandra允许在不停机的情况下重新启动主机,因为将拥有多个副本(将不必担心Wal重播或二进制日志重播或奇怪的主复制问题,尽管一些RDBMS插件使MySQL和Postgres比以前更容易)。
  • Cassandra允许进行更好的缩放(线性缩放,实例数量最多可达~1200个实例)
  • MySQL/Postgres允许在业务需求发展时通过向现有表添加索引来构建查询;Cassandra希望提前了解这些查询,并在开始编写数据之前进行数据建模。
  • MySQL/Postgres更容易使用,可以找到大量的库/UI/etc来帮助入门。
  • MySQL/Postgres提供真正的事务/MVCC-Casssandra,其轻量级事务仅限于对单个密钥的操作,而隔离/原子性保证则要弱得多。

扫码关注云+社区

领取腾讯云代金券