前几天开会,会上很无聊。和同事讨论起数据库外键的问题来,发现一个问题,我对数据库外键的理解有很大的问题,可以说是有很大偏差。
今天特意 Google 了一下。
找到如下相关文章
《数据库中主键和外键的设计原则》 ------ http://www.cnblogs.com/tianyamoon/archive/2008/04/02/1134394.html
这篇文章有提到复合键的问题,联系实际现时我们的项目所有副表都用到复合键,文中是反对用复合键的。
《MYSQL 外键定义》 ----- http://www.cnblogs.com/amboyna/archive/2008/02/18/1072062.html
看来我真的把外键和主表关联外表的字段列两个概念混淆了。主表关联外表的字段列尚不称为外键,当把这一字段列设为外键后当更新主表或
删除主表的记录会触发相应的事件。
《MySQL外键:数据库新手入门之MySQL中如何定义外键》 ------ http://tech.ddvip.com/2007-05/118009486725743.html
《数据库设计中一个矛盾:数据库外键,用还是不用?你怎么看.?》 ----- http://kb.cnblogs.com/a/1601193/
看了几篇文章看来大家对究竟用不用外键都有争论。由于自己的理解偏差,我是一直以来都不用外键的,在业务层来确保数据的完整性。
《外键约束方式》 ----- http://www.cnblogs.com/bigshow/archive/2009/01/11/1373835.html
看完这篇文章终于知道外键怎样用了!用外键约束可以减少不少后台的代码级联操作。