对于电子商务web应用程序的购物车(和结账流程)的用例,使用关系型数据库管理系统( Relational DB,RDBMS)或NoSQL DB作为MongoDB/Cassandra/其他,哪个更好?
对于目录透视图,NoSQL
提供了灵活的模式、数据/节点的水平扩展的理想用例。
购物车用例的每种方法的优缺点是什么?
发布于 2018-04-10 01:10:09
SQL和noSQL数据库有很多不同之处。这些差异使每种存储类型在不同的情况下各有优缺点。
由于这两种数据库类型最终都可以工作,因此这完全取决于上下文或您的实现。
在这个特定的案例(购物车)中,利弊可能都与您的数据的consistency和scalability相关。
noSQL数据库更适合于更“动态”的应用程序(数据分析、IoT、多媒体等)。这类应用程序使用的数据通常没有严格的结构,而且数据量非常大。这意味着不需要开发复杂的数据库模型,并且在单独的“节点”中存储大量数据的成本更低。这也使得noSQL数据库更容易扩展和扩展。主要的问题(缺点)是缺乏结构。这将使您更难运行分析并跟踪数据库的每个细节。
同时,当您的数据结构良好且基本一致时,SQL数据库非常有用(优点)。正如你所知道的,SQL以列和行的形式存储数据,如果你想要生成数据的详细统计数据,或者如果你想要对应用程序中发生的一切进行有组织的记录,这就给了SQL一个优势。主要的缺点(缺点)是SQL数据库的设计需要更多的时间,而且维护SQL数据库可能更昂贵(可伸缩性和物理存储需要更多的硬件)。
从性能上讲,我认为在这个用例中不会有任何重大的区别。
如果你仔细考虑我刚刚写的所有东西,我会说在购物车的上下文中,模型是的方式。购物车不需要大量的升级和更改(可伸缩性),它的数据总是结构化的(商品名称、价格等)。您可能希望跟踪用户在您的电子商务应用程序中进行的每一笔交易(出于责任和安全原因)。
tl;dr使用SQL是因为购物车使用案例中的数据是结构化的和一致的。
祝好运!
发布于 2018-04-12 14:20:48
像Cassandra和postgres/mysql这样的东西的优缺点大致如下:
RDBMS Cassandra处理多DC高可用性许多better.
不过,最终,除非您认为购物车将处理数千个并发用户,否则这可能无关紧要(只要您使用的是具有真正数据持久性保证的东西):使用您最舒适的使用。我会使用Cassandra,因为我非常了解Cassandra,但是如果你对Cassandra (或者其他什么)不太熟悉,那就用你最了解的吧。
https://stackoverflow.com/questions/49700533
复制相似问题