1

我需要识别功能依赖项并将下表规范化为 3NF。我仍然不清楚所有依赖项。

如果我有依赖项,我会将它们推送到其他表中吗?

音像店

客户表

customerNo | customername | address | phone | numberofbooking
  • 客户编号 – 与客户相关的唯一编号。 
  • 客户名称 – 客户的名称。  
  • 地址 - 客户地址。 
  • 电话 - 客户的电话号码。 
  • 租赁数量 – 客户当前的租赁数量。  

customerno是我的主键,除了numberofbooking依赖于customerno

视频表

SerielNo | CopyNumber | title | yearmade | director | origen
  • SerialCode – DVD 背面的唯一序列号。  
  • CopyNumber - 该视频的副本号。例如,一个视频可以在商店中有多个副本,这用于区分每个副本。 
  • 标题 - 电影的名称。 
  • 制作年份 – 电影出版的年份。  
  • 导演——电影的导演。 
  • 原产地——电影制作的国家。  

由于serielno我不是唯一的或副本号,因此我要videoId为每个视频添加一个唯一的序列号,因为序列号可以有多个副本。

租金表

title | customerName
  • title - 已租用的视频名称。 
  • customername – 租借电影的客户的姓名。  

不知道在这里做什么。

4

2 回答 2

0

根据您列出的内容,我会...

  • 删除该numberOfBooking列(这可以rentals稍后使用表中的子查询干净地计算。)
  • Director可能应该是它自己的表,然后在Video需要该关系时创建一个外键引用。
  • customerName将rentals 表中的列替换为customers 表的外键引用。

祝你好运!

于 2012-06-22T00:03:59.647 回答
0
  • 从客户表中删除 NumberOfBooking 字段。这是多余的,可以很容易地从租金表中计算出来。

  • 考虑将视频表拆分为两个表,其中一个包含唯一视频的信息,另一个包含有关每个视频副本的信息。

  • 考虑添加一个 id 来标识视频副本,这比序列号和视频副本号的组合更易于使用。

  • 考虑添加一个导演表,因为一些导演会制作几个视频。

  • 考虑添加一个国家/地区表,因为许多视频将来自同一个国家/地区。

  • 使用出租表中的客户编号,而不是客户名称。客户名称可能不是唯一的。

  • 在出租表中使用视频副本的标识,而不是视频标题。

于 2012-06-22T00:13:28.167 回答