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