0

我正在创建一个应用程序,我们每天都会收到几个外部产品提要,并用这些提要填充我们的产品数据库。然而,诀窍是我们需要使产品数据库与最新的提要保持同步。

以前,我曾玩弄过将 db 中的当前产品列表填充到数组中的理论,并与最新的提要进行数组比较,一旦产品数量达到数千,就会被淘汰。(尝试获取 5000 条记录时内存不足)。

因此,经过一番研究,似乎解决方案可能位于 SQL 端,也许使用 TRIGGERS。虽然我不太确定如何去做,但我的问题是。

因此,我需要通过同步过程完成两个目标:

1)插入我们数据库中不存在的新产品。我们可以使用 INSERT IGNORE 方法完成此操作。

2) 在我们的数据库中查找最新提要中不存在的产品,并对它们进行处理。(标记为已删除,或移动到已删除的产品表等)

第2步是我遇到麻烦的地方。我现在在想,也许对于每个同步操作,我们将最新提要中的产品插入“临时产品”表中,并以某种方式将“产品表”与“临时产品”表进行比较,以找到需要的记录标记为已删除。

请问有什么建议吗?

谢谢

4

1 回答 1

1

显然是多虑了这一点。Anigel 怀疑并进一步实施的解决方案是创建一个临时表“products_temp”来存储新的提要。然后我们运行一个简单的连接来找出哪些产品在 Products 表中,但不在 'products_temp' 中,因此表明这些产品已经在零售商处售罄或删除。

然后我们可以将查询结果标记为已删除/售罄/做任何事情。

我使用的查询是这样的:

SELECT products.sku_number, products_temp.sku_number FROM products LEFT OUTER JOIN products_temp ON products.`sku_number` = products_temp.`sku_number` WHERE  products_temp.sku_number IS null
于 2013-07-30T14:05:50.890 回答