14

我将构建一个电子商务网站,并想使用一个 no-sql 数据库,这将非常适合该应用程序的计划。但是当谈到哪个数据库适合这项工作时,我不确定。在比较了各种 DB 之后,看起来最好的可能是 mongo、couch 甚至 orientdb。与 MySQL 之类的东西相比,我已经看到了使用或不使用它们的论点。但是在它们之间(nosql 数据库),哪一个更适合电子商务解决方案?

请注意,对于用例,我不会每秒处理数千笔交易。或类似的高写入率。他们肯定会适度,但在任何已建立的数据库都可以处理的水平上。

CouchDB:有主对主复制,我真的可以使用。如果没有,我仍然必须在代码中实现相同的功能。我需要能够拥有一个用户数据库,与母舰同步。(用户将拥有自己的,可能是本地主机数据库,可以与主域服务器同步)。一旦您的查询存储在数据库中,Couch 也很快。因为我可能对读取性能有更高的需求。虽然不是很多。

MongoDB:查询非常简单且用户友好。此外,由于最终用户可能需要在给定时间查询某些我可能无法提前考虑的事情,这似乎更合适。我不必将我的查询预先存储在数据库中。支持原子事务,但仅在一次写入单个文档时。

OrientDB:图形数据库。与大多数人习惯的大不相同,但根据需要,它也可以很好地适应。Orient 具有无模式以及支持 ACID 事务的优点。图形数据库可以很好地处理大量客户和产品关系。Orient 也支持 master 到 master 的复制,类似于 couchdb。

不要误会我的意思,我可以看到传统上如何使用 MySQL 之类的东西来构建它,但是 nosql 解决方案的易用性和简单性非常有吸引力。虽然在我的情况下,需要一个无模式的解决方案,在 nosql 而不是 mysql 中会容易得多。一个给定的产品可能比另一个产品有更多或更少的项目。并且避免在添加新字段时重新创建表,这是可取的。

因此,在这 3 个(甚至您认为可能更好的其他)之间,在处理客户交易时,对于基于电子商务的网站,每个功能中的哪些功能可能对我有用或对我不利?

编辑:我不使用现有解决方案的原因是因为有了我需要的集成功能,那里没有可用的解决方案。我们还打算将其用作我们公司的完整产品。除了销售之外,还会有一些其他的集成。它还将与商店的 POS 系统一起使用。

4

3 回答 3

15

由于电子商务可以涵盖从购物车到会员资格和定期订阅的所有内容,因此很难准确猜测您所设想的要求和复杂性。

在构建电子商务网站时,早期的考虑之一应该是调查是否已经存在可以满足您要求的电子商务产品或工具包。即使您的用例看起来很简单,订单、发票、付款、产品和客户关系等流程也有许多微妙之处。也可以将您的应用程序分为目录管理方面(可能更自定义)与计费(可能是第三方,甚至可能通过托管的计费/支付 API)。

Another consideration should be who you are developing the e-commerce site for: is this to scratch your own itch, or for a client? Time, budget, and features for a custom build can be difficult to estimate and schedule .. and a niche choice of technology may make it difficult to find/hire additional development expertise.

A third consideration is what your language(s) of choice are for developing your application. Some languages will have more complete/mature/documented drivers and/or framework abstractions for the different databases.

That said, writing an e-commerce system appears to be a rite of passage for many developers ;-).

Edit: a lot has changed since this answer was originally posted in 2012 and you should definitely refer to current product information. For example, MongoDB has had support for Decimal128 values since MongoDB 3.4 (2016) and multi-document transactions since MongoDB 3.6 (2017).

于 2012-09-19T11:42:24.343 回答
2

Check the comparison of different available NoSql databases here. Suit your requirement as per that.

于 2013-01-08T10:10:36.630 回答
0

MongoDB 4 now multi-document ACID transactions! That makes it suitable for e-Commerce!

Check out: https://www.mongodb.com/transactions

于 2018-08-23T23:02:38.960 回答