用户登录
用户注册

分享至

hibernate 外键允许为空

  • 作者: 我很温柔丶但是我很丑
  • 来源: 51数据库
  • 2020-10-14

数据库的外键可以为空,也可以非空,但是如果非空,则这个值必须在主表中存在。


比如主表是一个班级,主键是班级id,

字表是学生分配班级表,主键是学生id,外键是所在班级id。


如果一个学生的外键id为空,说明这个学生还没有被分配到任何一个班级

如果一个学生的外键id非空,并且是班级表中的某个id,则说明学生分配到这个班级

如果一个学生的外键id非空,并且不属于任何班级,则数据插入肯定报错。也就是说这种情况不存在。

追问:

何时为空,是否是它不作为主键的时候?

追答:

上面已经说的很清楚了,什么时候都可以为空啊,为空就代表这个这个学生还没有分配到班级,所以子表的数据外键列如果为空,就说明业务上和主表上还没有关系。

看来你的数据库理论知识很差啊。建议你补补数据库理论知识。不然后期遇到个小问题你都不懂。


软件
前端设计
程序设计
Java相关