购物车数据库设计和将订单放入表格的流程

Posted

技术标签:

【中文标题】购物车数据库设计和将订单放入表格的流程【英文标题】:shopping cart database design and the flow of putting the orders into the tables 【发布时间】:2011-06-25 03:32:19 【问题描述】:

我正在 SQL Server 2005 中创建一个数据库来存储所接受的订单。

table [customers] : 客户详细信息表的主键是 customer_ID,它将是一个身份自动增量

table [orders]:包含 3 列,[orderid](也是 pk),[product_id],[quantity]

table [linking] : 包含 2 列,[customerid](作为外键),[orderid](也是外键)

订购流程: 当客户结账时,客户的详细信息将存储到表[customers] 中,其中将生成唯一的 customer_ID。

接下来,使用该 customer_ID,购物车中的产品将存储到 table[orders] 中。

现在,问题是:如何从表 [customers] 中检索自动生成的 customer_ID?假设很多用户同时签出?将客户的详细信息插入表[customer]后,我必须使用表[linking]中的customer_ID与orderid配对。

【问题讨论】:

【参考方案1】:

编写一些 SQL 存储过程来为您完成这项工作。您可以使用 ADO.NET 从您的 Web 应用程序代码中调用它。

    调用过程CreateCustomer。它会创建您的 CustomerID。 调用procCreateOrderForCust
CREATE PROC CreateCustomer 
  @Name varchar(100),
  @Address varchar(100)
AS
   DECLARE @CustomerID int; 

   INSERT INTO CUSTOMER([Name],[Addr]) VALUES (@Name, @Addr);

   SELECT @CustomerID = SCOPE_IDENTITY();

   RETURN @CustomerID;

...
CREATE PROC CreateOrderForCust
  @CustomerID int,
  @SKU int,
  @Qty int
AS
   .....

【讨论】:

我已经解决了。实际上我只是将 sql 传递到命令文本中。我使用@@identity 而不是 scope_identity()。您认为如果很多人同时下订单,返回的订单身份将是属于该特定买家的实际身份吗? @angus 我自己,我总是使用 scope_identity,而不是 @@identity。你永远不知道未来什么时候会出现新的触发器。

以上是关于购物车数据库设计和将订单放入表格的流程的主要内容,如果未能解决你的问题,请参考以下文章

Java毕业设计+现成产品 —>java ssm springboot女士电商平台10(源码+sql+论文可运行)登录注册商品浏览分类管理模糊查找轮播图热销商品购物车订单订单流程控制

购物商城数据库设计-订单系统设计

购物商城数据库设计-订单系统设计

基于springboot电商生鲜购物商城平台设计与实现(含源码+数据库文件)

电商数据结构之订单模块(订单模块的数据结构设计)

新星计划Django基于PythonWeb的Django框架设计实现天天生鲜系统-9购物车提交订单订单提交成功页面功能实现