我需要识别功能依赖项并将以下表规范化为3NF。我还不清楚所有的依赖关系。
如果我有依赖项,我会将它们推入其他表吗?
视频商店
客户表
customerNo | customername | address | phone | numberofbooking
customerno
是我的主键,除numberofbooking
以外的所有内容都依赖于customerno
?
视频表
SerielNo | CopyNumber | title | yearmade | director | origen
由于serielno
不是唯一的,因此我是goint,因为序列号可以包含多个副本,因此我可以为每个视频添加videoId
唯一身份。
租借表
title | customerName
不知道该怎么做。
答案 0 :(得分:0)
根据你列出的内容我会...
numberOfBooking
列(稍后可以使用rentals
表中的子查询干净地计算出来。)Director
应该是它自己的表,然后如果需要这种关系,则从Video
创建一个外键引用。customerName
列。答案 1 :(得分:0)
从customer表中删除NumberOfBooking字段。这是多余的,可以从租赁表中轻松计算出来。
考虑将视频表分成两个表,其中一个表包含唯一视频的信息,另一个表包含有关每个视频副本的信息。
考虑添加ID来识别视频副本,这比序列号和视频副本号的组合更容易使用。
考虑添加一个导演表,因为一些导演会制作几个视频。
考虑添加国家/地区表,因为许多视频都来自同一个国家/地区。
使用租赁表中的客户编号,而不是客户名称。客户名称可能不是唯一的。
在租借表格中使用视频副本的标识,而不是视频标题。