外建有其定义.你可以查数据库手册里一般都写有不过通俗意义上讲.外健就是 多个表中都有相同的一列健定义,
比如 用户表里有用户ID,  发贴 表里也有用户ID , 投票信息里也有用户ID.
其中发贴 里的用户ID和投票信息里的用户ID,实质上都是用户表里用户ID的值.
这其中只有用户表里的用户ID是基础性,唯一性.
所以做数据库关系的时候.它就是其它两个表相关字段的外健

解决方案 »

  1.   


    这其实是一个应用矛盾如果不需要数据的一致性.允许存在"脏数据"的话,  比如上例中 明明用户ID中没有uid=9 但是允许发贴表中有一个uid=9的值.
    那么的确就不必使用外健.因为外建在数据变更时要检查完整性,这必然会消耗一定的时间反之,如果要求数据一致性,不允许存在"脏数据",即使不使用外建.也必然在程序,或者某个中间层中去做数据合法性的检查.同样也是耗用时间.
    那么这个时候就要考虑,是使用数据库的外建占用的一点消耗划算,还是自己的程度/中间层所带来的消耗划算.所以说,用不用外健.本质上是一个需求问题.从个人的角度来说,你若不是海量级超高数据更改频率的应用.用外建还是值得推荐的 :-)
      

  2.   

    涉及参照完整性要相关表和数据库支持MyISAM表不支持外键