这是我打算导入 mysql 的示例 xml 文件。
<?xml version="1.0" encoding="utf-8"?>
<ShipmentRequest>
<Message>
<Header>
<MemberId>MID-0000001</MemberId>
<MemberName>Bruce</MemberName>
<DeliveryId>0000001</DeliveryId>
<OrderNumber>ON-000000001</OrderNumber>
<ShipToName>Alan</ShipToName>
<ShipToZip>123-4567</ShipToZip>
<ShipToStreet>West</ShipToStreet>
<ShipToCity>Seatle</ShipToCity>
<Payments>
<PayType>Credit Card</PayType>
<Amount>20</Amount>
</Payments>
<Payments>
<PayType>Points</PayType>
<Amount>22</Amount>
</Payments>
<PayType />
</Header>
<Line>
<LineNumber>3.1</LineNumber>
<ItemId>A-0000001</ItemId>
<Description>Apple</Description>
<Quantity>2</Quantity>
<UnitCost>5</UnitCost>
</Line>
<Line>
<LineNumber>4.1</LineNumber>
<ItemId>P-0000001</ItemId>
<Description>Peach</Description>
<Quantity>4</Quantity>
<UnitCost>6</UnitCost>
</Line>
<Line>
<LineNumber>5.1</LineNumber>
<ItemId>O-0000001</ItemId>
<Description>Orange</Description>
<Quantity>2</Quantity>
<UnitCost>4</UnitCost>
</Line>
</Message>
</ShipmentRequest>
如果我要使用 mongodb 数据库,我会将此文件作为集合中的一条记录导入,但是,由于我要处理 MySQL,我认为最好将 xml 文件中的信息导入并拆分到不同的表中:
表 1:订单。该表将包含以下信息:
- 会员ID
- 成员名字
- DeliveryId
- OrderNumber - 这将有一个唯一的值
- 收货人姓名
- ShipToZip
- 船到街
- 运送到城市
- PayType1 - 在这种情况下,信用卡
- PayType1金额
- PayType2 - 第二种支付方式,积分
- PayType2金额
表 2:详细信息。这将包含有关购买产品的信息。在这种情况下,它们是三个:苹果、桃子和橙子。该表将包含以下信息:
- 项目 ID
- 描述
- 单位成本
- 数量
- 订单号
我认为这两个表将通过 OrderNumber 键建立关系。如果我没记错的话,OrderNumber 将被称为表 2 的外键。
另一个想法是在导入表 1 时使用OrderNumber作为主键,因为它将具有唯一值,而不是使用增量主键。
我的问题是你认为我打算在 xml 文件中拆分信息的方式是最好的方式吗?或者如果有更好的方法请指教。我对 MySQL 完全陌生,这是我的第一个项目。
我没有用“xml”标记这篇文章,因为问题不在于如何将 xml 导入 mysql。