WPF、C#、SQL—在数据库中创建行

WPF、C#、SQL—在数据库中创建行,c#,sql-server,wpf,database,rows,C#,Sql Server,Wpf,Database,Rows,我正在创建一个计费软件。我创建了一个包含4个表的数据库 Category\u Master Product\u Master Customer\u Master 订单详细信息 我对按顺序创建行的细节感到困惑。原因是,如果客户购买10种不同的商品,则每个商品ProductCode也应添加到订单详情表中 所以问题是,我需要为每个产品创建行,还是它们的任何其他方式都可以在单个单元格中表示所有ProductCode。您需要创建行。尽管有技术上可行的替代方案,但它们都是令人难以置信的糟糕设计,充其量只

我正在创建一个计费软件。我创建了一个包含4个表的数据库

  • Category\u Master
  • Product\u Master
  • Customer\u Master
  • 订单详细信息
我对按顺序创建行的细节感到困惑。原因是,如果客户购买10种不同的商品,则每个商品
ProductCode
也应添加到订单详情表中


所以问题是,我需要为每个产品创建行,还是它们的任何其他方式都可以在单个单元格中表示所有
ProductCode

您需要创建行。尽管有技术上可行的替代方案,但它们都是令人难以置信的糟糕设计,充其量只是一个未受过教育的黑客。

我建议您将订单详细信息分为两个表:

订单产品

订单ID |产品代码


订单详细信息

OrderID |其他参数



订单的每个产品都应该是OrderProduct表中的新行。此结构将允许您将订单详细信息与产品分开存储,并与此订单相连接。OrderProduct表将仅包含产品与多对多订单相关的订单的链接。连接这些表将允许您进行任何必需的Select查询

我还建议您再创建一个表(Order_Products)来管理一个订单下订购的产品,以便您能够轻松跟踪一个订单下订购的产品。如果多个值的大小不变,例如可以使用二进制字段管理的一周中的几天,则可以使用单个单元格管理多个值,但在您的情况下,产品的数量是一个变量,因此我更喜欢使用另一个表来做同样的事情


谢谢。

u可以在单个单元格中以逗号分隔或Xml格式保存多个产品代码。您好,感谢您的快速回复。这意味着我需要创建10个不同的行?如果一个订单有10个不同的产品,通常您会创建10个行,每个行具有相同的OrderID和不同的ProductID。感谢您的回复。现在我明白了。亲爱的downvoter,请留下评论,以便我可以改进。不加评论的向下投票对任何人都没有帮助。@nvoigt“极其糟糕的设计”->这句话太笼统了,不可能是真的。这取决于数据的使用方式,有时将订单项存储在XML列中实际上是个好主意。我想。嗨,谢谢你的回复。在OrderProduct表中,同一orderID将有多个ProductCode。它应该添加在同一单元格或多个不同行名称的单元格中?如果客户购买100种不同的产品,那么我需要创建100种不同的行。对。@KaMaLMoHaN假设您有和订单(ID=1)以及此订单的产品-Product1(ID=1)、Product2(ID=2)、Product3(ID=3)。在OrderProduct中,您将有3条记录:1 | 1、1 | 2和1 | 3。如果接下来您将有另一个产品1和3的订单,那么您的表将额外包含2条记录:2 | 1和2 | 3。以此类推。100行2列。现在我明白了。和OrderID可以重复。是的。@KaMaLMoHaN是的,您的其他订单可能与以前的订单中的产品相关联。我假设您使用一种逻辑,其中单个产品有一定数量,不同的用户可以订购。