mysql - 多对一关系的插入异常

标签 mysql sql django-models database-normalization

假设我有一个名为“student”的表,其中有一列“name”。我想存储第二个属性,称为“组”。 “group”将是根据名称计算的值,不同的名称可以在同一组中。所以每个名字都有一个组,一个组可以有多个名字。通过创建第二个名为“group”的表并向“student”添加指向“group”的 fk 列,可以轻松地在规范化模式中对此进行建模。然而,假设现在我只能在学生注册一段时间后才能计算他们的小组。所以我需要能够在不知道学生所属群体的情况下输入他们。使用此架构,我要么必须使用 null fk,要么不添加学生。

如果我错过了显而易见的事情,我很抱歉,我对正常化有点陌生。我考虑的是使用一个关联表,其中 fk 代表组,fk 代表学生。这将允许我在不知道学生所在组的情况下输入学生,然后在稍后阶段通过关联表将他们链接到他们的组。但根据我在关联表上读到的内容,您应该使用它们来解构多对多关系。这是一对多的关系。所以我很困惑。是否有一种标准方法可以标准化这种多对一关系,其中的值只能稍后计算?

最佳答案

解决此问题的一种非常常见的方法是在组表中添加“无组”记录。所有学生一开始都映射到该记录,然后在将他们分配到某个组时更新外键。

关于mysql - 多对一关系的插入异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55753385/

相关文章:

django - 通过过滤对象列表来获取对象列表

python - Django查询集如何排除没有组或标签的产品?

mysql - 在 mysql 命令行中反转列值

php - 如何为每个访问我的 PHP 页面的用户保存相同的 token ?

python - 如何按连接数对查询进行排序

php - 为什么 PHP 脚本在 WAMP/MySQL 服务器中不显示 Unicode 文本

php - SQL 和 DataTables 返回数据库的值

mysql - 如何按字段分组然后按不同字段排序然后限制

mysql - MySQL Inner Join如何对数据进行排序?

Django ImageField : how to make upload_to parameter dependent on self. ID?