插入异常与多对一关系

问题描述 投票:0回答:1

假设我有一个名为“student”的表,其中包含一列“name”。我想存储一个名为“group”的第二个属性。 “group”将是根据名称计算的值,并且不同的名称可以在同一组中。因此每个名称都有一个组,一个组可以有多个名称。通过创建第二个名为“group”的表并将fk列添加到指向“group”的“student”,可以在规范化模式中轻松建模。但是,现在假设我只能在注册后的某个时间计算学生的小组。所以我需要能够在不了解他们的小组的情况下进入学生。使用这个模式,我要么必须使用null fk,要么不添加学生。

抱歉,如果我错过了明显的,我对标准化有些新意。我考虑的是使用一个关联表,其中fk用于组,fk用于学生。这将允许我在不知道他们的小组的情况下进入学生,然后在稍后阶段通过关联表将他们链接到他们的小组。但是从我在关联表中读到的内容来看,你打算用它们来解构多对多关系。这是一对多的关系。所以我很困惑。是否存在标准化这种多对一关系的标准方法,其中值只能在以后计算?

mysql sql django-models database-normalization
1个回答
1
投票

解决这个问题的一种非常常见的方法就是在groups表中创建一个“无组”记录。所有学生都开始映射到该记录,然后在分配给组时更新外键。

© www.soinside.com 2019 - 2024. All rights reserved.