- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我将构建一个电子商务网站,并希望使用一个 no-sql 数据库,该数据库非常适合该应用程序的计划。但是当谈到哪个数据库适合这项工作时,我不确定。在比较了各种 DB 之后,看起来最好的可能是 mongo、couch 甚至 orientdb。与 MySQL 之类的东西相比,我已经看到了使用或不使用它们的论点。但是在它们之间(nosql 数据库),哪一个更适合电子商务解决方案?
注意,对于用例,我不会每秒处理数千笔交易。或类似的高写入率。他们肯定会适度,但在任何已建立的数据库都可以处理的水平上。
CouchDB:拥有主对主复制,我真的可以使用它。如果没有,我仍然必须在代码中实现相同的功能。我需要能够拥有一个用户数据库,与母舰同步。 (用户将拥有自己的,可能是本地主机数据库,可以与主域服务器同步)。一旦您的查询存储在数据库中,Couch 也很快。因为我可能对读取性能有更高的需求。虽然不是很多。
MongoDB:查询非常简单且用户友好。此外,由于最终用户可能需要在给定时间查询某些我可能无法提前考虑的事情,这似乎更合适。我不必将我的查询预先存储在数据库中。支持原子事务,但仅在一次写入单个文档时。
OrientDB:图形数据库。与大多数人习惯的大不相同,但根据需要,它也可以很好地适应。 Orient 具有无模式以及支持 ACID 事务的优点。图形数据库可以很好地处理大量客户和产品关系。 Orient 也支持 master 到 master 的复制,类似于 couchdb。
不要误会我的意思,我可以看到传统上如何使用 MySQL 之类的东西来构建它,但是 nosql 解决方案的易用性和简单性非常吸引人。虽然在我的情况下,需要一个无模式的解决方案,在 nosql 而不是 mysql 中会容易得多。一个给定的产品可能比另一个产品有更多或更少的项目。并避免在添加新字段时重新创建表格。
那么在这 3 个(甚至您认为可能更好的其他)之间,在处理客户交易时,对于基于电子商务的网站,每个功能中的哪些功能可能对我有用或不利于我?
编辑:我不使用现有解决方案的原因是因为有了我需要的集成功能,那里没有可用的解决方案。我们还打算将其用作我们公司的完整产品。除了销售之外,还会有一些其他的集成。它还将与商店的 POS 系统一起使用。
最佳答案
由于电子商务可以涵盖从购物车到成员(member)资格和定期订阅的所有内容,因此很难准确猜测您所设想的要求和复杂性。
在构建电子商务网站时,早期的考虑之一应该是调查是否已经有成熟的电子商务产品或工具包可以满足您的要求。即使您的用例看起来很简单,订单、发票、付款、产品和客户关系等流程也有许多微妙之处。也可以将您的应用程序分为目录管理方面(可能更自定义)与计费(可能是第三方,甚至可能通过托管的计费/支付 API)。
另一个考虑因素应该是您为谁开发电子商务网站:这是为了满足您自己的需求,还是为了客户?自定义构建的时间、预算和功能可能难以估计和安排.. 技术的利基选择可能会导致难以找到/雇用额外的开发专业知识。
第三个考虑因素是您选择哪种语言来开发您的应用程序。一些语言将为不同的数据库提供更完整/成熟/文档化的驱动程序和/或框架抽象。
也就是说,编写电子商务系统似乎是许多开发人员的必经之路 ;-)。
编辑:自此答案最初于 2012 年发布以来发生了很大变化,您绝对应该引用当前的产品信息。例如,MongoDB 支持 Decimal128 values从 MongoDB 3.4 (2016) 和 multi-document transactions 开始自 MongoDB 3.6 (2017) 以来。
关于mongodb - 电子商务的 NoSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12488720/
在大规模数据集(Google,Facebook,linkedin)中使用非关系数据库(例如键值对存储)的好处显而易见。您认为中小型应用程序如何从使用非关系数据库中受益? 最佳答案 自60年代以来,IB
我正在努力弄清楚如何最好地为我的系统实现这一点……现在让我的头离开 RDBMS 空间…… 我当前数据库的一部分有三个表:Show、ShowEntry 和 Entry。 ShowEntry 基本上是 S
我计划使用 nosql 数据库作为我的 Web 产品的后端。我有几个非常基本的疑问。 1) 我在博客中读到 Nosql 数据库对于在线货币交易不太好,即数据完整性是最重要的。(我的产品有在线货币交易)
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 去年关闭。 Improve th
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
NoSQL 术语有 4 个类别。 键\值存储 面向文档 图 面向列。 从我的角度来看,所有这些数据建模都有相同的定义,有什么区别? Key\value 数据库以类似 OOP 中的对象的结构维护数据。访
我正在做一个小项目,我需要构建一个倒排索引并应用基于用户查询的相似性算法 - 基本信息检索。构建和搜索倒排索引的最佳 NoSQL 产品是什么? 谢谢,J 最佳答案 由于倒排索引是关于存储单词与其在文档
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 8年前关闭。 Improve this
当使用SQL数据库时,有不同的方式来显示系统的流程。在银行中,您可以使用 ER 来显示其属性。并为其操作使用类图 UML。 有什么更好的方法可以为最终用户表示 NoSQL 数据库,如果有任何图表我可以
关系数据库使用键来完成,并且发生在 (a 非常令人放心的 ) 数据级别。文档数据库必须在应用程序级别强制执行。 RDB 确实强制执行参照完整性。如果两个人之间的关系,如果一个人被删除,关系将自动不复存
我目前正在尝试实现类似 Tumblr 的用户交互,例如转发、关注、关注者、评论、我当前关注的人的博客文章等。 还需要显示每篇博客文章的事件。 我坚持为数据库创建适当的架构。有几种方法可以实现这种功能(
我一直在对 Nosql(尤其是 RavenDB)进行一些研究,但我仍然不确定处理以下问题的最佳方法: 我有两个简单的对象,“用户”和“事件”。一个用户可以输入多个事件,一个事件可以由多个用户输入——标
刚刚看到这篇关于 NOSQL 模式的文章(不是我的)。从开发人员的角度来看,它涵盖了许多 NOSQL 实现模式(如散列和复制模式)。 总而言之,如果有人问自己这个问题,它非常有用: Where can
我现在在网上听到了很多关于 nosql 键/值数据库的信息。你能举个例子说明一个是做什么用的。什么样的真实世界数据最适合这类数据库? 最佳答案 我认为'What the heck are you ac
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我目前正在从事一个项目,其中包括出于性能原因将内容推荐器从 MySQL 迁移到 NoSQL 数据库。我们的团队一直在评估一些替代方案,例如 MongoDB、CouchDB、HBase 和 Cassan
我们正在为即将到来的项目评估 NoSQL。我倾向于以 RDBMS 的方式思考问题,并且在概念化缺乏规范化方面遇到了困难。 我知道在 NoSQL 中复制数据不被认为是错误的。我无法理解的是修复数据更改以
有人建议我研究键/值对数据系统来替换我一直在使用的关系数据库。 我不太了解的是这如何提高查询效率。据我了解,您将丢弃大量有助于提高查询效率的信息,只需将您的结构数据库变成一个长长的键和值列表? 我完全
我正在尝试找出 NoSQL KVP 或文档数据库中外键和索引的等效项。由于没有数据透视表(用于添加标记两个对象之间关系的键),我真的很困惑如何以对普通网页有用的方式检索数据。 假设我有一个用户,该用户
我打算开始学习 NoSQL。我是从《Professional NoSQL》这本书开始的。书中有使用 CouchDB、Cassandra、MongoDB 等的示例。我的疑问是我应该安装所有不同的风格来完
我是一名优秀的程序员,十分优秀!