我试图解释如何将模拟艺术家/音轨数据(下面的第一张图片)从1NF标准化为2NF到3NF,逐步获得我认为最适合数据库的结果。这几乎就像规范化妨碍了我想做的事情,但我是不是在理解化过程中不理解某些东西?我可以通过使每行唯一并删除重复项来确定如何将此模拟数据规范化为1NF,但是在哪个阶段,例如我们被告知将Composer ID分配为轨道表或电影表的外键?这只是我们从经验中做的事情吗?没有对错吗?
简而言之,我的问题是,任何人都可以在这里展示或解释模拟数据......
答案 0 :(得分:1)
你的1NF就是要为每个曲目名称设置一个独特的记录,所以基本上将第一个记录的模拟数据分成2个......
<2> 2NF是取出重复的键,我想到的是你所显示的3个独立的表,可能就是你需要去的那些。您可以添加另一个表以允许轨道在多个影片中显示,即分别创建一个引用轨道ID和影片ID的影片轨道表(并从轨道表中删除影片ID)。
同样地,你可以通过一个轨道作曲家表来达到允许合作作品的极端,但这可能不足以使这些努力付出代价
从规范中可以看出,规范化在经验中肯定变得更容易,并且可以根据数据的目的进行规范化。