Tod*_*uer 7 sql database normalization
我正在制作一张发票软件,我希望它能保存每张发票.
用户通过选择客户来创建发票,以及向客户收取许多项目.看起来大多数发票都有多个项目,将它们保存到数据库的最佳方法是什么,而不是非常多余?如果需要,我愿意重新安排我的整个数据库.
我的表看起来像这样:
客户表:
Id / Primary key
FullName
Address
Phone
Run Code Online (Sandbox Code Playgroud)
物品表(提供的产品表):
Id / Primary key
ItemName
Price
Description
Run Code Online (Sandbox Code Playgroud)
发票表(已保存的发票):
Id / Primary key
CustId / Foreign key is Id in Customer table
ItemId / Foreign key is Id in Item table
Notes
Run Code Online (Sandbox Code Playgroud)
您需要另一个表来存储发票(您Invoices现在调用的实际存储发票项目).
Customer
id
name
etc.
Item
id
name
etc.
Invoice
id
cust_id
date
InvoiceItem
id
inv_id
item_id
Run Code Online (Sandbox Code Playgroud)
这是使用联结表(即)建模多对多关系的经典方法InvoiceItem.