【说明】
某超市的销售业务由一个销售业务管理系统进行管理,该系统每完成一次交易都需要提供顾客发票,其格式如表1-1所示。
对于这样一个销售业务管理系统,分别给出了以下两种关系数据库的设计(下划线表示主关键字)
设计一:
顾客Customer(顾客代码Cno,姓名name,住址address,联系电话phone)
收银员Salesman(收银员代码Sno,身份证号idno,姓名flame,住址address,联系电话phone)
商品Merchandise(商品代码Milo,商品名称Mname,价格price)
发票Invoice(发票号码Ino,交易日期Idate,顾客代码Cno,收银员代码Sno,商品代码Mno,单价unitprice,数量amount)
设计二:
顾客Customer(顾客代码Cno,姓名name,住址address,联系电话phone)
收银员Salesman(收银员代码Sno,身份证号idno,姓名name,住址address,联系电话吵one)
商品Merchandise(商品代码Mno,商品名称mllame,价格pnce)
发票Invoice(发票号码Ino,交易日期Idate,顾客代码Cno,收银员代码Sno)
发票明细Invoicedetail(发票号码Ino,商品代码Uno,单价unitprice,数量amount)
【问题4】 设计二中关系Merchandise中由属性price表示商品价格,关系Invoice, detail中的属性 unitprice也表示商品价格。两个是否有必要同时存在为什么 |
参考答案:
解析:有必要。Merchandise中由属性price表示的是商品的当前价格,超市中的价格是有可能变动的,而关系Invoicedetail中的属性unitprice表示的是在开具发票时该商品的单价。
[分析]:Merchandise中由属性price表示的是商品的当前价格,超市中的价格是有可能变动的,而关系Invoicedetail中的属性unitprice表示的是在开具发票时该商品的单价。如果缺少其中任意一个,将导致商品单价不能进行调整,否则,当商品的单价发生变化时,销售历史中的商品价格就随着发生变化。