我正在使用eBay Trading API,其中一个API调用部分带有一个ItemSpecifics XML元素数组,下面是一个简单的例子:
<ItemSpecifics>
<NameValueList>
<Name>Brand</Name>
<Value>My1stWish</Value>
<Source>ItemSpecific</Source>
</NameValueList>
</ItemSpecifics>
因此我们返回了名称和值属性。
并非所有商品都使用相同的名称属性,一些eBay商品可能没有,有些可能有20个,而这20个与下一个商品完全不同,有15个不同。< / p>
所以我的问题是: 您如何建议处理这些属性值,以便它们可以存储到MySQL数据库表中,然后可以从该表中撤回,并使用右侧名称作为标题和相应的值?
我是否应该将这些作为序列化数据转储到名为&#39; ItemSpecifics&#39;?的列的表中但后来我不确定如何让它们再次退出,以便我可以创建一个平面文件,其中所有选项都作为标题说明为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>
答案 0 :(得分:0)
我能想到的有两种方法可以做到这一点。首先,正如您所提到的那样,有序列化。您可以将数据转储到数组中,通过serialize
运行并将其与其他数据放在同一行。
然而,第二种方式可能更好。也就是说,您创建一个与您的项目相关的表格。我们假设您有一张名为items
的表格。在其中,您创建一个名为item_id
的自动ID(自动增量)字段。因此,您将项目数据拉出并将其放入此表中。我们会说它的ID为20.现在,您有第二个名为item_options
的表。在此表中,您将逐行存储选项。您还可以输入父行的ID。所以,让我们说你有5套选择。您将有五行,每行有item_id
20个。此处的优势在于您的数据现在已完全展开,因此您可以查询选项表以查找提供红色的所有产品。这是&#34;关系数据库&#34; RDBMS的一部分。