用于电子商务的NoSQL数据库

时间:2012-09-19 04:44:23

标签: mongodb couchdb e-commerce orientdb nosql

我将构建一个电子商务网站,并希望使用no-sql数据库,这将很好地适应应用程序的计划。但是当谈到哪个数据库适合这项工作时,我不确定。在比较各种DB之后,看起来最好的那些可能是mongo,沙发,甚至是orientdb。我已经看到与MySQL相比,使用或不使用所有这些参数的参数。但他们之间(nosql数据库),哪一个适合电子商务解决方案?

注意,对于用例,我不会每秒进行数千次交易。或类似的高写入率。他们将是温和的确定,但在任何已建立的数据库可以处理的水平。

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

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

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

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

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

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

3 个答案:

答案 0 :(得分:13)

由于电子商务可以包含从购物车到会员资格和定期订阅的所有内容,因此很难准确猜出您想象的要求和复杂程度。

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

另一个考虑因素应该是您正在开发电子商务网站的人:这是为了抓住您自己的痒,还是为了客户?自定义构建的时间,预算和功能可能难以估计和安排。而技术的利基选择可能使得难以找到/雇用其他开发专业知识。

第三个考虑因素是您选择的语言用于开发您的应用程序。某些语言将为不同的数据库提供更完整/成熟/文档化的驱动程序和/或框架抽象。

也就是说,编写电子商务系统似乎是许多开发人员的成年礼仪; - )。

对于MongoDB,您可能需要查看:

  • Forward - 一个使用MongoDB的新开源电子商务平台(声明意图支持其他数据库)。目前被描述为“私人测试版”,但看起来值得调查(显然已经用于一些现场网站)。我注意到最近在MongoDB博客上提到过:How MongoDB makes custom e-commerce easy

  • MongoDB and E-Commerce - 来自Kyle Banker的博客文章,Manning书籍 MongoDB In Action 的作者。它已有几年历史了,但对数据建模考虑有一些有趣的讨论;还有E-Commerce Inventory的后续行动。注意:自那些帖子以来,MongoDB可用的aggregationreporting选项已大大改善。

  • Perform Two-Phase Commits - 在MongoDB中进行多文档更新的设计模式

您提到的Master-Master复制(MVCC)似乎不是电子商务的相关功能,您通常需要强大的一致性而不是最终的一致性。您提到同步用户数据库,因此可能通过OpenID等单点登录解决方案可以更好地解决该特定要求。

答案 1 :(得分:2)

检查不同的可用NoSql数据库here的比较。符合你的要求。

答案 2 :(得分:0)

MongoDB 4现在可以进行多文档ACID交易!这使其适合电子商务!

签出:https://www.mongodb.com/transactions