0

我正在使用 eBay 交易 API,其中一个 API 调用的一部分返回 XML 元素的 ItemSpecifics 数组,下面是一个简单的示例:

<ItemSpecifics>
<NameValueList>
    <Name>Brand</Name>
    <Value>My1stWish</Value>
    <Source>ItemSpecific</Source>
</NameValueList>
</ItemSpecifics>

所以我们返回了属性名称

并非每件商品都带有相同的名称属性集,有些 eBay 列表可能没有,有些可能有 20 个,而这 20 个与下一个列表完全不同,有 15 个不同的。

所以我的问题是: 您建议如何处理这些属性值,以便它们可以存储到 MySQL 数据库表中,然后能够从该表中拉出,并使用正确名称设置的值作为标题和相应的

我应该将这些作为序列化数据转储到名为“ItemSpecifics”的列的表中吗?但是后来我不确定如何将它们再次取出,以便我可以创建一个平面文件,其中所有选项都作为 CSV 文件中的标题。

下面两个例子:

清单 1 返回:

<ItemSpecifics>
<NameValueList>
    <Name>Brand</Name>
    <Value>My1stWish</Value>
    <Source>ItemSpecific</Source>
</NameValueList>
<NameValueList>
    <Name>Exact Colour</Name>
    <Value>Black</Value>
    <Source>ItemSpecific</Source>
</NameValueList>
</ItemSpecifics>

清单 2 返回:

<ItemSpecifics>
<NameValueList>
    <Name>Exact Heel Height</Name>
    <Value>4.1"</Value>
    <Source>ItemSpecific</Source>
</NameValueList>
<NameValueList>
    <Name>Heel Type</Name>
    <Value>Stiletto</Value>
    <Source>ItemSpecific</Source>
</NameValueList>
</ItemSpecifics>
4

1 回答 1

0

有几种方法可以做到这一点,我能想到。首先,正如您提到的,有序列化。这就是您将数据转储到数组中的地方,运行它serialize并将其与其他数据粘贴在同一行中。

然而,第二种方法可能更好。也就是说,您制作了一个与您的项目相关的表格。假设您有一张名为items. 在其中,您创建了一个名为 的自动 ID(自动增量)字段item_id。因此,您将项目数据拉出并放入此表中。我们会说它的 ID 为 20。现在,您有第二个表名为item_options. 在此表中,您将逐行存储您的选项。您还可以输入父行的 ID。因此,假设您有 5 组选项。您将有五行,每行有item_id20 行。这里的优点是您的数据现在已完全展开,因此您可以查询您的选项表以查找所有提供红色的产品。这是 RDBMS 的“关系数据库”部分。

于 2013-10-25T00:12:32.297 回答