SQL 什么时候使用外键?
个人观点:
建议使用情况:对于小部分固定人群使用,可以使用以降低开发维护和维护难度,像单独的公司 OA 系统。
不建议使用情况:对于并发高的对数据库性能要求严格的。约束建议移到服务层实现,因为业务服务器的扩展和集群比数据库的扩展和集群方便且成本低
SQL 外键约束属性含义:Restrict,No Action,Cascade,Set Null
Restrict:约束。当来源表(父表)进行 delete/update 时,检测外键是否存在数据,有不允许 delete/update。
No Action:同 Restrict。
Cascade:级联。当来源表(父表)进行 delete/update 时,检测外键是否存在数据,有则删除子表中的数据。
Set Null:设为空。当来源表(父表)进行 delete/update 时,检测外键是否存在数据,有则修改子表中的外键为 NULL,注意不要设置非空约束。