C# 数据库设计

C# 数据库设计,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我有一个存储产品销售的数据库。我的销售表由以下字段组成:[saleID]、[itemCode]、[Date]、[storeID]、[QuantitySeld]。问题是我希望用户能够为多个saleid插入付款 价格来自项目表,但如果购买多个项目,可能会有折扣。我希望能够存储finalPayment字段和与其连接的多个销售,然后根据特定finalPayment对销售进行分组。但是,可能存在不属于同一销售批次的相同最终付款总额,因此我无法将最终付款作为销售表中的字段进行分组 我可以创建一个finalP

我有一个存储产品销售的数据库。我的销售表由以下字段组成:[saleID]、[itemCode]、[Date]、[storeID]、[QuantitySeld]。问题是我希望用户能够为多个saleid插入付款

价格来自项目表,但如果购买多个项目,可能会有折扣。我希望能够存储finalPayment字段和与其连接的多个销售,然后根据特定finalPayment对销售进行分组。但是,可能存在不属于同一销售批次的相同最终付款总额,因此我无法将最终付款作为销售表中的字段进行分组

我可以创建一个finalPayments表,每次进行多项目销售和折扣时,在其中存储一个新的最终付款,检索最后一个finalPaymentID,然后将其存储在属于它的每个销售的sales表中(在我将创建的新字段[finalPaymentID]中)。然后我可以按finalPaymentID对销售进行分组


表中最后一个finalPaymentID是否可以由其他存储创建?会有并发问题吗?我是否需要以某种方式锁定表,直到finalPaymentID被检索并存储在sales表中?您将如何实现这一点?

我将创建多个表

表Order将包含OrderId、Date和StoreId

然后我将创建一个OrderItem表,其中包含OrderId、Item、Qty和Price

从orderItem表到Order表将存在一对多关系


这样,您就可以按OrderId进行分组,以获取数量和值

听起来像一个购物车模式-类似这样的东西应该可以:

Product (your Items table)
 - | ProductId | Whatever

Payment
 - | PaymentId | Date | Whatever

Cart
 - | CartId | UserId | ProductId | PaymentId

对于每个产品,您都在product中有一个记录。每个“付款”记录是所有产品的总和(购物车总数)。销售中的每个记录都是“购物车”中每个项目的唯一标识符,因此您可以说UserID 1在其购物车中有3个项目用于特定的付款Id(3个记录)

我确实对付款表做了修改。我曾经 string insertSQL=“插入[paymentSum]([paymentSum])值(@paymentSum);选择@@Identity”

然后将检索到的paymentID存储到sales表中,用于批处理中的每个销售