从实体对应关系考虑,我一直以外键来表达多条记录对应一条记录,从业务上讲就是一对多的关系。如果多对多,可以通过中间表来个联合主键,拆成两个一对多的关系。
一直认为外键的用途是这个,却忘了外键的根本用途,参照完整性规则,这个我早学过,早知道,唯一的体会就是级联操作,删除,插入的时候,却对于维持数据的完整性方面少有体会。
其实在第一节的拆多对多的关系时,也用到了参照性完整性约束,只是被业务的一对多关系蒙蔽,
现在新的体会就是参照完整性约束,都知道有配置表(系统参数表)和实例表,实例表的数据取自配置表,若向实例表中插入配置表中没有的数据,则违反参照完整性约束。故插入失败。
外键的作用:
总结:最根本的就是 参照完整性约束,表间数据的完整性
衍生出来的作用就是 在参照完整性的原则下来表达多对一的关系。