我应该将XML Feed保存在数据库中还是使用XML解析器来处理它?

时间:2011-07-20 13:05:38

标签: php xml database

我正在创建一个价格比较脚本,该脚本将与许多商店提供给我的XML Feed一起使用。 这些XML将具有与以下相同的结构

    <product id="449135">
<name>MadBiker 600</name>
<link>MadBiker-600.html</link>
<price_with_vat>107.01</price_with_vat>
<category id="148807">For men</category>
<image width="280" height="280">p1.1.jpg</image>
<description>desc goes here</description>
     </product>

要处理它,我有两个选择。继续使用XML平面文件或将这些数据/值保存在数据库中。我已经读过有一些低内存解析器,比如SAX / XMLReader。

我更感兴趣的是将解析器用于单个文件,而不是使用RDBMS。

您对此有何看法?

谢谢

1 个答案:

答案 0 :(得分:1)

这主要取决于您要将数据放入的用途。

我假设您希望能够对数据进行排序和过滤(例如“按价格排序,desc”或“按类别过滤=男士”)。我还假设您需要某种“相关性”计算和搜索功能。

我还假设您将不断添加,删除和更改比较数据。

从广义上讲,这些东西在SQL中比通过解析XML文件更容易 - 特别是在规模上。

另一方面,SQL使得很难为不同类型的产品表示不同的数据属性(自行车可能需要框架尺寸,衣服可能需要颜色)。如果这是您的问题的一部分,XML使数据存储更容易 - 您定义架构/ dtd并编写符合架构的文档。