如果两个 table 有一个相同的列来处理它们之间的关系,是否最好将该列分开到不同的 table?

If two table have an identical column for handling relationship between them, is it better to separate the column to a different table?

我正在处理大学申请的数据库。有一个例程 table 包含所有级别 (类) 的一周五天(周一至周五)的所有时间表。

每个级别的学生也可以分成不同的部分,他们的日常活动会根据他们的部分而有所不同。所以我想到在“学生”和“常规”中添加“级别”,“部分”列,分别显示特定学生在哪个部分以及特定时间表属于哪个部分。有了这个,我可以将特定学生与 he/she 所属部分的例程相匹配。

但我认为更好的解决方案是创建两个新的 table,分别称为“Level”和“Section”,它们将包含我大学的不同级别和部分。使用此部分 table 可以参考级别 table 来确定该部分属于哪个级别。 Student 和 Routine table 还将包含对 table 部分的引用,以便我可以轻松地将学生与正确的 Routine 相匹配。但是“级别”table 只会有一列 'level' 而“部分”table 也只会有两列 'section' 和 'level' .

对于这种特殊情况,两种方法中哪种更好?

我会说第二个选项,但你不需要 table 只有 'Levels'。

您应该有包含级别和部分的表 'Classes'。 如果 Level 没有 Section,则此参数可以为 NULL。 如果您需要获取关卡列表,只需执行 DISTINCT 查询即可获得包含所有关卡的 table,因此不需要第二个 table.

这就是我要做的。