计划在从xml文件导入数据时在MySQL中创建关系表
下面是一个示例xml文件,我计划将其导入mysql计划在从xml文件导入数据时在MySQL中创建关系表,mysql,foreign-keys,Mysql,Foreign Keys,下面是一个示例xml文件,我计划将其导入mysql <?xml version="1.0" encoding="utf-8"?> <ShipmentRequest> <Message> <Header> <MemberId>MID-0000001</MemberId> <MemberName>Bruce</MemberName> <D
<?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>
中期-0000001
布鲁斯
0000001
ON-00000000 1
艾伦
123-4567
西部
西特尔
信用卡
20
要点
22
3.1
A-0000001
苹果
2.
5.
4.1
P-0000001
桃
4.
6.
5.1
O-0000001
橙色
2.
4.
如果我使用mongodb数据库,我会将此文件作为集合中的一条记录导入,但是,由于我要处理MySQL,我认为最好将xml文件中的信息导入并拆分为不同的表:
表1:订单。此表将包含以下信息:
我在这篇文章中没有用“xml”来标记,因为问题不在于如何将xml导入mysql。我想你打算在这些数据进入数据库后对其进行处理,因此我建议你将设计规范化一点。我的设计如下:
<?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>
Member(MemberID, MemberName)
Order(OrderNumber, MemberID, DeliveryID, ShipToName, ShipToZip, ShipToStreet, ShipToCity, PayType1, PayType1Amount, PayType2, PayType2Amount)
Item(ItemID, Description)
Detail(OrderNumber, ItemID, UnitCost, Quantity)
在哪里
MemberID
是Member
中的主键,OrderNumber
和MemberID
是Order
中的主键,ItemID
是Item
中的主键,OrderNumber
和ItemID
是Detail
中的主键
还需要在这些约束之间设置相应的约束