用于电子商务的NoSQL数据库

ski*_*ift 11 couchdb mongodb nosql e-commerce orientdb

我将构建一个电子商务网站,并想用一个没有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系统合作.

Ste*_*nie 13

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

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

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

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

也就是说,编写电子商务系统似乎是许多开发人员通过的仪式;-).

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

  • Forward - 一个使用MongoDB的新开源电子商务平台(声明意图支持其他数据库).目前被描述为"私人测试版",但看起来值得调查(显然已经用于一些现场网站).我注意到最近在MongoDB博客上提到过:MongoDB如何使自定义电子商务变得容易.

  • MongoDB和电子商务 - 来自Kyle Banker的博客文章,Manning书籍MongoDB In Action的作者.它已有几年历史了,但对数据建模考虑有一些有趣的讨论; 还有一个关于电子商务库存的后续行动.注意:自那些帖子以来,MongoDB可用的聚合报告选项已大大改进.

  • 执行两阶段提交 - 一种用于在MongoDB中执行多文档更新的设计模式

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