使用 MongoDB Atlas,解锁零售和制造业库存运营中的实时分析、自动化和员工效率。
产品: MongoDB Change Streams、MongoDB Atlas Charts、MongoDB Atlas Search、MongoDB Atlas Triggers
合作伙伴: Next.js
解决方案概述
在零售和制造业竞争激烈的商业环境中,在正确的时间、正确的地点拥有正确的库存至关重要。库存不足会导致运营中断和错失良机。库存过多会增加与存储相关的成本和风险。各种规模的公司都在库存管理方面举步维艰。
单一视图、实时分析和事件驱动架构等解决方案可以帮助企业克服这些挑战,改进库存管理。
本指南介绍了为零售和制造等不同行业量身定制的库存管理系统的构建进程。
零售行业的库存管理
如今,零售商需要对其库存有一个统一的视图,以满足客户对即时可用性和无缝购物体验的期望。线上和实体店库存的不一致可能导致销售机会流失和客户不满。
库存管理系统具有以下优势:
有效的库存管理使零售商能够利用分布式供应链,在渠道之间流畅地转移库存,以满足出现的需求。这降低了实体店的股票和在线渠道的缺货风险,从而提高了整体库存效率。
实时分析使零售商能够做出数据驱动的决策,快速适应不断变化的市场条件和消费者行为。此外,自动化流程减少了人为错误,使员工能够专注于增值活动,例如提高服务质量。
事件驱动架构促进了这些改进,支持跨各种平台和设备的无缝库存数据集成和同步。
图 1. 库存管理概述
在此系统中, MongoDB通过启用单一视图、事件驱动型架构和实时分析,帮助企业提高服务质量、员工效率并优化股票管理。
这些功能为其他高级场景奠定了基础,例如:
物联网(IoT)和 RFID 标签集成
AI/ML 预测可实现精确的需求预测
分布式物流
参考架构
库存管理解决方案利用与MongoDB Atlas无缝集成的 Next.js应用程序,提供灵活且可扩展的后端,如图 2所示。
该解决方案使用以下组件:
MongoDB Atlas数据库包含四个密钥集合:
products
、transactions
、users
和locations
。这些集合管理库存、进程事务并追踪用户和位置数据。符合ACID的操作可确保数据的一致性和完整性,尤其是在事务导致的股票水平变化期间。
products
和transactions
集合都会接收更新,以保持整个系统的可靠性和一致性。应用程序通过MongoDB Node.js驾驶员连接到MongoDB 。
Atlas Search增强了应用程序的搜索功能,支持高级全文搜索功能。这允许用户执行复杂查询,例如按产品类别搜索或应用分面(Facet)筛选器。
Atlas Triggers通过执行响应数据库更改的函数来自动化后端逻辑,例如当股票低于特定阈值时自动对库存重新排序。
变更流充当实时侦听器,检测数据库中的变更并将更新推送到应用程序。这样就可以向库存经理发送实时警报,例如股票不足通知。
Atlas Charts提供了用于实时分析的可视化工具,允许用户直接从MongoDB数据创建交互式图表和仪表盘。这使决策者能够实时追踪关键指标,例如库存水平和销售趋势。
工作负载隔离性分析查询在专用节点上运行,确保操作性能不受影响。
这种具有凝聚力的架构支持实时数据交互并自动执行关键任务以简化流程。它允许 Next.js应用程序以 MongoDB 强大的数据管理功能为基础,提供响应迅速的动态用户体验。
通过这种集成,该解决方案有效地平衡了性能、自动化和可扩展性,使其非常适合应对现代库存管理的挑战。
MongoDB 架构
图 2. 使用 MongoDB Atlas 和 Next.js 的库存管理系统架构
数据模型方法
库存管理系统将数据存储在四个集合中:products
、transactions
、users
和 locations
。这些集合分别表示影响股票水平、应用程序用户以及系统服务位置的股票、进货和出库变动。
文档数据模型与传统表格模型的不同之处在于其卓越的灵活性。使用表格方法时,要全面了解库存情况,通常需要跨多个表进行复杂的连接。MongoDB 的文档模型消除了这种复杂性。
图 3. 表格设置中的产品集合等效项
transactions
集合使用扩展引用模式来引用项目。因此,ACID 事务文档包含供内部引用的 product.id
字段和 product.name
。此模式允许用户界面向用户显示相关信息,而无需对 products
集合使用额外的查询或联接。
products
集合包含关系数据库中需要 10 个单独表的内容。单个文件包括:
针对产品变体的嵌入式数组,允许将同一产品的不同配置存储在一起。
产品股票和位置信息,这通常需要在关系数据库中添加额外的表。
这种灵活性提供了更直观的设计,优化了数据访问,并确保相关数据存储在一起。
图 4。表示如何将复杂文档和数组嵌入到文档中
以下是产品文档示例:
{ "type": "inbound", "location": { "origin": { "type": "warehouse" }, "destination": { "type": "factory", "id": { "$oid": "65c63cb61526ffd3415fadbd" }, "name": "Bogatell Factory" } }, "placement_timestamp": { "$date": "2024-04-08T15:13:58.822Z" }, "items": [ { "sku": "CT001-PT-MDB0001", "name": "Programmable Thermostats", "unit": "pieces", "delivery_time": { "amount": 3, "unit": "seconds" }, "status": [ { "name": "placed", "update_timestamp": { "$date": "2024-04-08T15:13:58.822Z" } }, { "name": "arrived", "update_timestamp": { "$date": "2024-04-08T15:14:03.741Z" } } ], "amount": 15, "product": { "id": { "$oid": "65cce1a4ccdfb7402dbb4db4" }, "name": "Controls and Thermostats", "image": { "url": "/images/products/thermostats.png" } } } ], "automatic": true, "transaction_number": 133 }
构建解决方案
要复制此解决方案,您需要设置MongoDB Atlas并配置应用程序。有关详细说明,请参阅 GitHub存储库。 GitHub 页面将指导您完成以下步骤:
使用 Atlas Charts 设置实时分析
使用 Atlas Charts 增强您的应用程序的可视化和分析功能。解锁实时分析功能,并根据您的偏好创建自定义图表。
配置您的应用程序前端
将 GitHub存储库库克隆到本地计算机,使用自己的值更新环境变量,安装依赖项,然后在本地 http://localhost:3000
运行应用。
关键要点
该解决方案突出了以下功能:
实时警报:使用 Change Streams 在前端实现实时低库存警报。
工作流程自动化:利用数据库触发器实现库存补货工作流程的自动化。
实时分析:使用 Atlas Charts,您可以实时掌握数据动态,分析趋势,并及时做出明智的决策。
库存的单一视图:利用 document model 的灵活性,创建一个全面的库存单一视图。
请随意探索、调整和增强您的库存管理系统,以满足您自己的需求。
作者
Dr. Humza Akhtar, MongoDB
Ramiro Pinto Prieto, MongoDB
Tamar Alphaidze,MongoDB