Sql server 您是否介意整理一些SQL发票数据库创建初学者的问题?
我对SQL有些陌生 我需要制作一张可以查询的发票,以创建类似以下内容的文档: 这是我做的鱼尾纹图: 我不确定客户发货和账单地址是否应该是一个单独的实体。我也不太确定tblProductLine与tblItem和tblInvoice的关系。我画对了吗 我是否匹配了模式并正确设置了关系?还有,有人能解释一下什么时候需要外键吗?(因为我不确定把它们放在哪里)我假设它们在1对多关系的末尾引用前面的表,但我不确定。。。哪些表需要外键Sql server 您是否介意整理一些SQL发票数据库创建初学者的问题?,sql-server,database-design,relationships,Sql Server,Database Design,Relationships,我对SQL有些陌生 我需要制作一张可以查询的发票,以创建类似以下内容的文档: 这是我做的鱼尾纹图: 我不确定客户发货和账单地址是否应该是一个单独的实体。我也不太确定tblProductLine与tblItem和tblInvoice的关系。我画对了吗 我是否匹配了模式并正确设置了关系?还有,有人能解释一下什么时候需要外键吗?(因为我不确定把它们放在哪里)我假设它们在1对多关系的末尾引用前面的表,但我不确定。。。哪些表需要外键 无论如何。。。任何帮助或意见都将是伟大的 随机排列的一些想法: 对于
无论如何。。。任何帮助或意见都将是伟大的 随机排列的一些想法:
员工
有发票ID
?他们当然可以有多张发票地址
-表,并为您的客户提供一个发货地址
和一个账单地址
(可选),两者都参考地址
tblProductLine
中的数量和金额之间有什么区别
项目描述的一部分,但是您无法真正发现红色和蓝色Jag是同一产品
根据您的要求,最好将该表规范化,并将大小
和颜色
移动到子表中。如果需要重命名产品,只需更改一条记录,而不是多条记录
通常,订单和发票虽然密切相关,但它们是解耦的;您正在将它们合并为一个实体 客户为一个或多个产品下订单。这将生成订单标题和订单详细信息。商户根据订单开具发票。但是在一个非常简单的mom-and-pop操作中,您可以省去订单,让发票实体代表订单
ORDER|INVOICE DETAIL
id int PK
headerid foreign key references INVOICEHEADERS or ORDERHEADERS *mutatis mutandis*
productid foreign key references PRODUCTS(id)
quantity
extendedamount
外键是必要的,因为它们可以防止为不存在的产品创建订单,或为不存在的客户开具发票。它们确保数据库行不包含不可能的内容
通常,您会将CustomerAddress作为一个单独的表引用回客户。客户可以有一个或多个地址
每当一个实体可以“有一个或多个X”时,这表明您需要一个单独的表来捕获X