如何创建支持将多个项目与单个发票关联的表?
本文关键字:单个发 项目 关联 何创建 创建 支持 | 更新日期: 2023-09-27 18:02:32
我正在尝试在c#中制作一个基本的发票项目。我想创建一个表tablesales,其中包含销售发票的所有详细信息。如果用户想要一个项目,那么它的ok,但如果用户想要添加多个项目,那么如何更新相应的表?我有一个表tableitems,里面有关于项目的详细信息,比如id,名称,数量等
您将需要一个表,让您将多个项目关联到一个发票;它们通常被称为行项目。
我会从你的发票表开始,看起来像这样:
CREATE TABLE [Invoice]
(
[Id] BIGINT NOT NULL,
[Title] CHARACTER VARYING(255) NOT NULL,
PRIMARY KEY([Id])
);
之后,您需要一种存储行项的方法。这是通过将外键从一个表添加到另一个表来实现的。每个发票项都是外键输入到发票中,从而创建一个关系。
CREATE TABLE [InvoiceItem]
(
[Id] BIGINT NOT NULL,
[InvoiceId] BIGINT FOREIGN KEY REFERENCES [Invoice]([Id]) NOT NULL,
[Name] CHARACTER VARYING(255) NOT NULL,
[Quantity] INTEGER NOT NULL,
[Total] SMALLMONEY NOT NULL,
PRIMARY KEY([Id])
);
使用这样的结构,您通常会通过以下方式创建发票:首先启动一个事务,插入一个发票,然后为该发票插入发票项,最后提交事务。
您需要第三个表tblSaleItem
。
这将需要列:ID, SaleID, and ItemID
。
如果一个销售购买了4件物品,那么在tblSale
中将有一行用于该交易,在tblSaleItem
中将有四行用于所购买的4件物品。每个条目将有一个SaleID
映射到相同的tblSale
行。
希望这些都说得通。这被称为规范化数据库。