- 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/
我正在为客户建立一个 EC 网站,项目经理提出了一些奇怪的想法,我正在努力实际实现他向客户销售的产品。 这是我的主要问题和系统设置的快速总结:产品在类别内,类别可能是另一个类别的子类别。因此,该类别在
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
最近一直在想响应式网站与移动网站,尤其是电子商务网站。我有一个相当大的项目即将开始,看起来它将是一个相对繁重的项目(就模板和功能而言)。因此,立即想到的是做一个移动站点来削减某些可能对性能要求很高但不
我正在为大学考试编写一些 Java 代码,该项目基于“电子商务”。要求之一是将产品插入购物车,我必须使用 Visitor 模式。 这是教授给我的一个例子,我必须“用”它来代表我的购物车。问题是我有一个
我正在尝试确定在数据库中存储订单的最佳方式。 每个产品都可以配置,但并非所有选项都相同。例如: Product A Size: small, medium, large Membership: 1 y
我整天都在苦思冥想,试图找到这个问题的答案;我终其一生都无法弄清楚如何在我为客户建立的 Woocommerce 商店中右对齐价格。这是我所在的位置: .price .woocommerce-Price
我需要有关棘手问题的专家建议。 场景是: 电子商务网站 很多产品 这些产品有很多折扣 产品由唯一的 ProductID 标识并具有销售价格。很经典的剧情。该产品还可以有一个或多个折扣。 折扣可以有不同
我想在用户第一次购买之前将结帐的账单字段的值预填充到数据库存储的值中。 我试过下面的代码: add_filter( 'woocommerce_checkout_fields' , function (
我想了解数据库的可扩展性,所以我刚刚听过一个关于高度可扩展的 Web 应用程序的习惯的演讲 http://techportal.inviqa.com/2010/03/02/habits-of-high
在我的电子商务应用程序(用于咖啡馆/餐馆)中,我目前具有以下数据库结构。 cart 就是购物车,可以在其中添加商品,商品/订单发送到服务器之前的一个临时场所。 ProductCart 是一个行项目,许
我在我的项目中实现了 Google Analytics。在他们要求我启用电子商务之前,一切似乎都很好。 按照所有设置步骤,我已在 GA 仪表板上为我的项目启用电子商务,并且 Unity 中的设置必须正
我想使用 GTM 来跟踪电子商务交易。这是针对客户端环境的测试,其中代码可能位于 GTM 代码片段 之后的 ,这就是为什么使用 Dom Ready 作为事务标签的触发器不可靠的原因。 这是我的测试代码
我需要覆盖我的 spree 商店的标题颜色。我在 ../mystore/vendor/assets/stylesheets/spree/frontend 目录下创建了一个 custom.css。但它不
我正在使用 Odoo 10。在新用户注册后(通过 localhost:8069/web/signup)我希望他自动分配到我在我自己的自定义模块上创建的组中(用户将需要身份验证稍后来自管理员,以便他可以
我希望构建一个用户能够从我的站点购买产品的应用程序。购买将包括他们购买的实物、运输、税收(如果适用)等。我知道 PayPal 有许多付款选项,其中一个是 Web 服务,另一个只是重定向到他们的网站。我
我正在开发一个电子商务网站。我正在尝试使用 ajax 请求设置购物车商品数量。 我明白了 if (isset($_POST['product_id']) && isset($_POST['new_qu
假设用户访问我的网站并购买了一个棚子。棚子将被添加到购物车并完成工作。在我的数据库中,我已经有了棚子的尺寸(以显示给客户)。 假设客户还想要棚子的地毯(你永远不知道)我希望我的网络应用程序自动理解地毯
我正在尝试设置一个 AJAX 函数来清空我的购物车 HTML Go to Product JavaScript function clearCart(d) { jQuery(document)
我正在尝试在我的应用程序中设置 Spree(我愿意使用 Gem 或在供应商模式下运行它)。 我已经查看了文档和 wiki,但对于它如何在我现有的应用程序中工作,我仍然有些困惑。我可以为 Spree 使
目前正在使用 GTag 将购买数据记录到 Google Analytics E-Commerce。我正在使用标准电子商务。现在我要把这个过程作为后期处理。 (即)需要使用 C# 应用程序将购买数据记录
我是一名优秀的程序员,十分优秀!