问题
一直有个疑惑,在大型工程上表之间的外键关系只在ER图上体现,却没有在建表的时候设置外键(如往数据库新建表时对外键没有限制),问了架构师和查阅相关资料后整理了一下。
总结
-
-
在大型系统中(性能要求高,安全自己控制),不用外键(有外键约束的话,插入字段会进行检查,影响效率)
-
小系统,最好用外键
-
用外键要适当,不能过分追求
-
不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后具体应用通过这个层来访问数据库(比如外键约束都转交给dao层)
一直有个疑惑,在大型工程上表之间的外键关系只在ER图上体现,却没有在建表的时候设置外键(如往数据库新建表时对外键没有限制),问了架构师和查阅相关资料后整理了一下。
在大型系统中(性能要求高,安全自己控制),不用外键(有外键约束的话,插入字段会进行检查,影响效率)
小系统,最好用外键
用外键要适当,不能过分追求
不用外键而用程序控制数据一致性和完整性时,应该写一层来保证,然后具体应用通过这个层来访问数据库(比如外键约束都转交给dao层)