我正在数据库中编写表,以获得一个公开名为Orders的资源的休息服务。
Orders(id, items, user, total_amount)
我正在使用XML。我的问题是如何在OrderId的Orders表中存储“items”并以XML格式返回列表?我们如何在这里处理多个项目?
我的意思是,如果我想要这样的XML响应,我该如何将数据存储在数据库中?
<Order>
<Id>1</Id>
<Item>A</Item>
<Item>B</Item>
<Item>C</Item>
<User>Simran</User>
<Total_amount>1100</Total_amount>
</Order>
我到目前为止的数据库表:
create table Users
(
Id int not null primary Key identity(1,1) constraint fk_UserId_Id references Orders(UserId),
name nvarchar(50),
phone nvarchar(10)
);
create table Items
(
Id int not null primary Key identity(1,1) constraint fk_item_Id references Orders(ItemId),
name nvarchar(50),
Price int
);
create table Orders
(
id int not null primary Key identity(1,1),
ItemId int,
UserId int,
);
答案 0 :(得分:2)
这完全取决于您希望如何存储数据。
对数据进行非规范化可能会从您的示例创建3个表,即订单,用户和项目表。
在从数据库查询结果生成XML方面,您需要将数据提取到XML模型中。我建议将这个逻辑分开并生成转换层,这样在操作对象时就不会弄乱数据服务层。
XML中的多个项目也必须由外部元素包装,如下所示:
<Orders>
<Order>
<Id>1</Id>
<Item>A</Item>
<Item>B</Item>
<Item>C</Item>
<User>Simran</User>
<Total_amount>1100</Total_amount>
</Order>
<Order>
<Id>2</Id>
<Item>A</Item>
<Item>B</Item>
<Item>D</Item>
<User>Simran</User>
<Total_amount>1300</Total_amount>
</Order>
</Orders>