首页 新闻 会员 周边 捐助

关于数据库表关联的问题

0
悬赏园豆:20 [已解决问题] 解决于 2009-06-23 08:48

问题是这样的。

比如我的两个表有管理 比如 员工表和部门表。  m:1的关系

建表的时候 一般会给员工表中放上 部门表的 主键  作为外键

让这两个表产生关联。但是我发现 处理这两个表之间的 关系。比如 当我删除一个部门 就会删除此部门下的所有员工 这样的操作好像 都是放在程序中实现的。

但是我好想记得  在 ms sql 中直接就有约束条件  级联删除 级联更新 而且两个表之间的关系也可通过 msslq 直接拖拽主键实现。而在程序中我们大多这样写sql user.depar_id=depart.id

我现在不明白的是。这两种方式 得到的结果有什么区别。  那种好一点。 上学的时候学校里面教的是在mssql吧关系都做好

可是现在 在外面公司做项目  再看网上的一些程序。似乎没人在数据里建立关系 而都是在 程序里面直接写 sql 了 

好了问题就这些   感谢博客园的 朋友解答。

Beggar的主页 Beggar | 初学一级 | 园豆:15
提问于:2009-06-22 15:47
< >
分享
最佳答案
0

这两种都可行,只不过外键的方式,在性能上略略低一些(会有一些额外的检查), 自己处理的话程序逻辑读起来更清析一些~~如果要考虑兼容 mysql 的MYISAM 还是自己写吧,这个不支持外键关联.

俺做Web基本上不用级联操作..

沙加 | 老鸟四级 |园豆:3680 | 2009-06-22 20:00
其他回答(1)
0

建立关系还是有好处的,能够从数据库层面杜绝错误的数据结构,有时一个代码BUG就可能造成数据灾难,像级联删除这种情况,由代码明确写出整个删除过程,会比数据库里自动完成要好。

现在的一些项目可能是追求速度,或者有些人不太懂数据库原理,故而没编写关系。

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-06-22 21:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册