Mysql “一个”怎么说;发票“;表在专业数据库中看起来像什么?
我正在创建一个.NET簿记应用程序,并认为听取其他人对我的数据库表的看法可能是一个好主意 我有一个“产品”和一个“发票”表格,还有一些与我的问题无关的表格 在计算机语言之外,一张发票在大多数情况下有几种产品 我是否应该创建一个包含InvoiceId和ProductId列的桥接表“invoiceProduct”?Mysql “一个”怎么说;发票“;表在专业数据库中看起来像什么?,mysql,sql-server,database,Mysql,Sql Server,Database,我正在创建一个.NET簿记应用程序,并认为听取其他人对我的数据库表的看法可能是一个好主意 我有一个“产品”和一个“发票”表格,还有一些与我的问题无关的表格 在计算机语言之外,一张发票在大多数情况下有几种产品 我是否应该创建一个包含InvoiceId和ProductId列的桥接表“invoiceProduct”? 或者我应该只向“invoice”表中添加任意数量的列,名称格式如下:“product1”、“product2”。。。在达到某个限制之前?通常的习惯用法是将父发票表与子发票项目表相结合,如
或者我应该只向“invoice”表中添加任意数量的列,名称格式如下:“product1”、“product2”。。。在达到某个限制之前?通常的习惯用法是将父发票表与子发票项目表相结合,如下所示:
CREATE TABLE invoices
(
invoice_number INT,
customer_id INT REFERENCES customers (customer_id),
purchase_date DATE,
-- other fields go here,
PRIMARY KEY (invoice_number)
);
CREATE TABLE invoice_items
(
invoice_number INT REFERENCES invoices (invoice_number),
line_number INT,
product_id INT REFERENCES products (product_id),
quantity INT,
-- more fields,
PRIMARY KEY (invoice_number, line_number)
);
请注意,这是一个通用的伪SQL,需要为您的特定平台进行编辑,我对大多数字段的
INT
选择完全是任意的。当然是前者,创建一个桥接表。