在数据库设计的时候 有主键外键的关联
可是我们实际做一些系统的时候 需要在数据库上设置外键吗?
比如
表A 表B
ID NAME ID ID2 Level
1 A 1 1 20
2 B 2 1 23
3 2 25
4 2 20
表B的 ID2是 表A的ID的外键
有外键设置的话 表B现的 ID2 现在是不能输入 3的
表A 的 任何列现在都不能删了
可是这样 如果我要删除表A的 ID为2的列 就必须把表B中的ID2为2的列都删掉 要不就报错了
问题A:我们为什么要设置外键,我们在写系统的时候 删除表A的 ID为2的列时 多写一个 把表B中的ID2为2的列都删掉
的代码段不就可以了?那 弄个外键还有什么意义?
问题B:因为两张表的 ID字段都是自动增加的 所以应该也是不会重复
那么 如果我没设置外键 删除了表A的 ID为2的列 那么顶多就是表B中留了点 没用的数据罢了
这些数据要删掉吗?为什么?
请用些实际点的例子说明一下
书本上的相当的难理解的说。。。。。。。
------解决方案--------------------------------------------------------
我一般不设置外键,维护比较麻烦
可以通过程序控制
要根据场合来,不能硬套