这是一个家庭作业问题,因为它与我的数据库入门课程的问题有关,但不是问题本身。我正在学习 Phillip Pratt 的“MySql 指南”,并在第二章中遇到了一个问题。问题指出:
指出您需要对 Premiere Products 数据库进行当前设计以支持以下要求的更改(使用简写表示)。客户不一定由单个销售代表代表,但可以由多个销售代表代表。当客户下订单时,获得订单佣金的销售代表必须在代表客户的销售代表集合中。
数据库目前设计如下(注意粗体字段为主键):
Rep(Rep_Num、Last_Name、First_Name、街道、城市、州、邮编、佣金、费率)
客户(Customer_Num、Customer_Name、Street、City、State、Zip、Balance、Credit_Limit、Rep_Num)
订单(Order_Num、Order_Date、Customer_Num)
Part( Part_Num , Description, On_Hand, Class, Warehouse, Price)
Order_Line ( Order_Num , Part_Num , Num_Ordered, Quoted_Price)
我对这个问题的解决方案是添加一个单独的表来表示,如下所示:
Rep(Rep_Num、Last_Name、First_Name、街道、城市、州、邮编、佣金、费率)
客户(Customer_Num、Customer_Name、Street、City、State、Zip、Balance、Credit_Limit)
代表(代表_Id,客户编号,代表编号)
订单(Order_Num、Order_Date、Represents_Id)
零件(Part_Num、描述、On_Hand、类别、仓库、价格)
Order_Line ( Order_Num , Part_Num , Num_Ordered, Quoted_Price)
我想知道这是否是处理所提出问题的最有效方法,以及我的解决方案是否有任何明显的缺陷?