小编Fra*_*fka的帖子

如何知道何时停止正常化?

好吧,基本上我觉得我倾向于过度规范化事情,也许我这样做是以牺牲性能为代价的。因此,为了阐明这个问题,我创建了以下模式作为示例:

在此处输入图片说明

如您所见,我概述了两种不同的方法。这里的想法是所有大学都有课程(例如工程),并且所有课程都有专业(例如电气工程)。为了让这个例子起作用,我们必须假设有 40 个项目,比如 1000 个专业,并且学校有相同的项目/专业。

现在,我在这种情况下的典型做法是将任何可能重复的内容(即专业和课程)放入自己的表中;然后有一个关系,如上所示。另一种我倾向于远离的方法是第二种模型,其中 program 和 major 是具有重复值的列(例如,Engineering 可能会在表格中重复 1,00 次)。基本上,如果值重复,我会为它创建一个表。

现在,我对其中哪一种更好的方法不太感兴趣,因为我只是用它们作为一个例子来阐明真正的问题:人们如何知道它们何时过度规范化?我知道您在规范化表格方面做得太过分了,但我从来不知道衡量标准是什么。

附录

大学不需要在一个项目中拥有所有专业,因此大学与专业相关,而不是项目(例如,大学 X 有工程学院,但没有核工程,这是工程项目的一部分)。

normalization database-design

0
推荐指数
1
解决办法
1277
查看次数

标签 统计

database-design ×1

normalization ×1