我们的一位客户有一家网上商店,可以与他们的 ERP 系统同步。由于他们的仓库既为他们的网上商店服务,也为他们的实体商店提供服务,因此经常更新网上商店中每种产品的现有数量很重要,因为他们不想在网上商店中销售在网上商店中没有的产品。仓库。
目前通过以下方式解决此问题:
每五分钟就有一个 XML 文件从 ERP 系统发布到网上商店。该文件看起来像这样:
<products>
<product>
<productID>1</productID>
<stock>20</stock>
</product>
<product>
<productID>2</productID>
<stock>3</stock>
</product>
</products>
XML 包含数据库中的所有数千种产品,无论该产品的现有数量是否发生变化。根据 ERP 提供商的说法,将其减少到仅更改的产品不是一个选项,因此我们需要自己处理它。
然后,网上商店处理 XML 文件,并更新数据库中所有产品的现有数量,每次更新都有单独的交易。正如您可能理解的那样,这不必要地缓慢且资源繁重。该数据库包含数千种产品,大多数情况下,实际上没有或很少有产品真正改变了库存数量。
所以我的想法是,最好的方法是首先从数据库中为所有产品选择 productID 和库存,将结果与 XML 进行比较,然后只更新数据库中库存不匹配的产品XML 文件中的库存。
我的问题是将 XML 与数据库结果进行比较的最快方法是什么?将 XML 读入内存,循环访问数据库中的结果集,然后在 XML 上使用 XPath 来获取每个产品的库存值?首先将 XML 转换为字典,然后使用它进行查找?
提前感谢所有帮助。