PHP - 解析大数据并使其保持最新

时间:2015-05-29 22:16:33

标签: php mysql parsing bigdata

我使用PHP来解决这个任务。但那不是重点。

每天早上我得到四个文件,每个文件包含近6000-8000条记录,其格式如下:

  • 产品名称
  • 封装
  • 生产者
  • 含税价格
  • 过期日期
  • 恢复
  • 系列

解析这些记录,我得到了产品表。后来的客户订单,所以我需要在订单表中保留item的id。 (客户希望看到购买历史)

一切都很好。出现的问题是,有一天任何供应商都可以发送完全不同的价目表。即某些产品将被删除,其他产品将被添加。所以依靠他们在价目表中的订单是完全错误的。

我所要做的就是盲目地解析目录,一次性添加所有项目。每次下次获取目录时,我都需要添加新项目并从数据库中删除旧项目。 (虽然实际上并没有删除,只是标记为已删除,因此无法进行新购买)

为了确定项目是否是新项目,我将从Excel文件中逐个记录检索并检查"产品名称"," package"," producer", "系列"字段与产品表一起使用。

如果找不到这样的项目,我认为这是一个新项目,我将它添加到DB。

如何处理已删除的项目?我没有收到关于删除它们的警告。所以我无法找到新Excel文件中缺少的项目。解决方案是逐项扫描数据库,查看数据库中的所有项目是否都存在于Excel文件中。如果缺少某个项目,我会将其标记为已删除。

删除后的商品可以退回进行销售。因此,我需要选择所有已删除的项目,并逐个检查Excel文件。如果项目出现在Excel文件中 - 我将其添加回来。

值得注意的是,有些供应商将其目录作为Excel文件提供,而其他供应商则将其目录作为DBF文件。谁知道将来会出现什么样的格式。供应商的数量也应该会增长(下个月我们会再增加2个)。

我的问题。有没有更好的方法来提高效率?我担心我的方法过于简单。

拥有8000条记录并进行3次检查,我将通过MySQL Db获得每个价格表的O ^ 2复杂度。也许它可以用于8000条记录,但我确定它会失败,因为有一天我得到价格表,让我们说10 ^ 5记录。

有更好的方法来组织它吗?

感谢。

0 个答案:

没有答案