java - Restful 服务的数据库架构

标签 java sql rest

我正在数据库中为一个静态服务编写表,该服务公开了名为 Orders 的资源。

Orders(id, items, user, total_amount)

我使用 XML 来实现同样的目的。我的问题是如何在每个 OrderId 的订单表中存储“项目”并以 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,
);

最佳答案

这完全取决于您希望如何存储数据。

对数据进行非规范化可能会根据您的示例创建 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>

关于java - Restful 服务的数据库架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30306309/

相关文章:

java - 为什么Java不支持自动堆扩容?

java - 许多用户帐户(Java、Tomcat、Web)的安全问题

sql - 使用变量时的查询性能

php - 在 DUPLICATE KEY 错误后获取主键?

REST API : Best way to do/undo an action on a resource

java ftp zip 更好的方法

java - JTextArea 未添加到框架中

c# - join for insert语句mysql语法

ios - swift 2.0 : Best Practice for communication to a REST API with JSON

http - Rest API - 好友集合创建