php - 从 XML 文件更新 MySQL 数据库

标签 php mysql xml zend-framework

我在 mySQL 数据库中有 2 个表:

人数:

id    name     address .....

和项目:

id   person_id  param1  param2 ....

项目由 person_id 引用到 Persons。约有5000人、40000种元素,并且还在不断增加。此数据需要每隔几天从大型 XML 文件更新一次,如下所示:

.....
<person id='100016' lastname='....' firstname='.....' ....  >
<item param1='...' startdate='2006-01-07' enddate='2006-12-09' ... />
<item param1='...' startdate='2007-01-04' enddate='2007-12-08' ... />
<item param1='...' startdate='2008-01-04' enddate='2009-01-03' ... />
<item param1='...' startdate='2009-01-06' enddate='2009-12-31' ... />
</person>
......

人物和元素的某些属性可以改变,可以添加新人物和新元素。

保持轻松更新的最佳方法是什么?我不认为截断表并再次加载它们是最有效的方法。我是否应该考虑进行一些暂存 - XML 文件的大小开始达到 60MB 并且不断增长 -> 将其解析为 SimpleXML 并与 SQL 进行比较是无效的...

在这种情况下最佳做法是什么?

我有 mySQL 和 PHP 以及 Zend Framework 作为我的环境

最佳答案

您可以使用diffxml分析旧的和新的 XML 文件,然后解析 XML 中的更改以将它们反射(reflect)到 MySQL 中。

但我认为截断并加载完整文件也可以在合理的时间内完成。有时这样一个简单的解决方案是最好的 - 即使它不是 super 快。

关于php - 从 XML 文件更新 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371440/

相关文章:

php - 将 LaTeX 渲染为图像

PHP - 在 foreach 循环中取消设置数组元素

php - 像 stackoverflow 这样的搜索标签?

android - 如何更改弹出项的宽度大小?

java - 解析对java对象的soap xml响应

javascript - 使用 jQuery 或 javascript 转换日期格式(不使用任何库)

MySQL 时间戳错误

php - 从另一个类内部调用类函数

Android:如何创建一个带有滚动标题的对话框?

php - 如何使用jquery ajax将php中的echo拆分为2个不同的div