我是否正确归一化?
Did I normalize correctly?
正在做一些练习题,只是想知道我是否正确归一化了。谢谢。
Un-normalized Table
INVOICE [Invoice#(pk), InvoiceDate, Sales, Cust#,
(EquipClass, EquipClassDesc, Equip#, EquipDesc, EquipCharge, EquipQTY)]
1NF Tables
INVOICE [Invoice#(pk), InvoiceDate, Sales, Cust#]
Equipment [ Invoice#(pk), Equip#,(pk), EquipClass, EquipClassDesc,
EquipDesc, EquipCharge, EquipQTY)]
2NF Tables
INVOICE [Invoice#(pk), InvoiceDate, Sales, Cust#]
Equipment [Equip#,(pk), EquipClass, EquipClassDesc, EquipDesc, EquipCharge]
INVOICE_Equipment [Invoice#(pk) (FK), Equip# (pk) (FK), EquipQTY]
3NF Tables
INVOICE [Invoice#(pk), InvoiceDate, Salesperson#(fk)]
Salesperson [Salesperson#(pk), SalespersonName]
Invoice_SalesPerson [Invoice#(pk)(fk), Salesperson#(pk)(fk), Cust#]
Equipment [Equip#,(pk), EquipClass(fk), EquipDesc, EquipCharge,]
Equipment_Class [EquipClass(pk), EquipClassDesc]
INVOICE_Equipment [Invoice#(pk) (FK), Equip# (pk) (FK), EquipQTY]
由于非规范化、1NF 和 2NF table 从未提及销售人员,因此在先前模式中从 2NF 进展到 3NF 时发生的拆分和添加没有依据。
此外,发票更有可能直接与客户和销售人员相关联(它将具有对客户 table(未在模式中标识)和销售人员的独立 FK 引用 table). Invoice_SalesPerson table 看起来是虚假的,从发票中删除客户编号看起来很可疑。它可以按照你展示的方式完成,但如果没有清晰、冗长、有说服力的解释为什么这是必要的,我永远不会将其标记为正确的(而且我仍然怀疑它没有必要)。
正在做一些练习题,只是想知道我是否正确归一化了。谢谢。
Un-normalized Table
INVOICE [Invoice#(pk), InvoiceDate, Sales, Cust#,
(EquipClass, EquipClassDesc, Equip#, EquipDesc, EquipCharge, EquipQTY)]
1NF Tables
INVOICE [Invoice#(pk), InvoiceDate, Sales, Cust#]
Equipment [ Invoice#(pk), Equip#,(pk), EquipClass, EquipClassDesc,
EquipDesc, EquipCharge, EquipQTY)]
2NF Tables
INVOICE [Invoice#(pk), InvoiceDate, Sales, Cust#]
Equipment [Equip#,(pk), EquipClass, EquipClassDesc, EquipDesc, EquipCharge]
INVOICE_Equipment [Invoice#(pk) (FK), Equip# (pk) (FK), EquipQTY]
3NF Tables
INVOICE [Invoice#(pk), InvoiceDate, Salesperson#(fk)]
Salesperson [Salesperson#(pk), SalespersonName]
Invoice_SalesPerson [Invoice#(pk)(fk), Salesperson#(pk)(fk), Cust#]
Equipment [Equip#,(pk), EquipClass(fk), EquipDesc, EquipCharge,]
Equipment_Class [EquipClass(pk), EquipClassDesc]
INVOICE_Equipment [Invoice#(pk) (FK), Equip# (pk) (FK), EquipQTY]
由于非规范化、1NF 和 2NF table 从未提及销售人员,因此在先前模式中从 2NF 进展到 3NF 时发生的拆分和添加没有依据。
此外,发票更有可能直接与客户和销售人员相关联(它将具有对客户 table(未在模式中标识)和销售人员的独立 FK 引用 table). Invoice_SalesPerson table 看起来是虚假的,从发票中删除客户编号看起来很可疑。它可以按照你展示的方式完成,但如果没有清晰、冗长、有说服力的解释为什么这是必要的,我永远不会将其标记为正确的(而且我仍然怀疑它没有必要)。