我将构建一个电子商务网站,并想使用一个 no-sql 数据库,这将非常适合该应用程序的计划。但是当谈到哪个数据库适合这项工作时,我不确定。在比较了各种 DB 之后,看起来最好的可能是 mongo、couch 甚至 orientdb。与 MySQL 之类的东西相比,我已经看到了使用或不使用它们的论点。但是在它们之间(nosql 数据库),哪一个更适合电子商务解决方案?
请注意,对于用例,我不会每秒处理数千笔交易。或类似的高写入率。他们肯定会适度,但在任何已建立的数据库都可以处理的水平上。
CouchDB:有主对主复制,我真的可以使用。如果没有,我仍然必须在代码中实现相同的功能。我需要能够拥有一个用户数据库,与母舰同步。(用户将拥有自己的,可能是本地主机数据库,可以与主域服务器同步)。一旦您的查询存储在数据库中,Couch 也很快。因为我可能对读取性能有更高的需求。虽然不是很多。
MongoDB:查询非常简单且用户友好。此外,由于最终用户可能需要在给定时间查询某些我可能无法提前考虑的事情,这似乎更合适。我不必将我的查询预先存储在数据库中。支持原子事务,但仅在一次写入单个文档时。
OrientDB:图形数据库。与大多数人习惯的大不相同,但根据需要,它也可以很好地适应。Orient 具有无模式以及支持 ACID 事务的优点。图形数据库可以很好地处理大量客户和产品关系。Orient 也支持 master 到 master 的复制,类似于 couchdb。
不要误会我的意思,我可以看到传统上如何使用 MySQL 之类的东西来构建它,但是 nosql 解决方案的易用性和简单性非常有吸引力。虽然在我的情况下,需要一个无模式的解决方案,在 nosql 而不是 mysql 中会容易得多。一个给定的产品可能比另一个产品有更多或更少的项目。并且避免在添加新字段时重新创建表,这是可取的。
因此,在这 3 个(甚至您认为可能更好的其他)之间,在处理客户交易时,对于基于电子商务的网站,每个功能中的哪些功能可能对我有用或对我不利?
编辑:我不使用现有解决方案的原因是因为有了我需要的集成功能,那里没有可用的解决方案。我们还打算将其用作我们公司的完整产品。除了销售之外,还会有一些其他的集成。它还将与商店的 POS 系统一起使用。