问题是这样的。
比如我的两个表有管理 比如 员工表和部门表。 m:1的关系
建表的时候 一般会给员工表中放上 部门表的 主键 作为外键
让这两个表产生关联。但是我发现 处理这两个表之间的 关系。比如 当我删除一个部门 就会删除此部门下的所有员工 这样的操作好像 都是放在程序中实现的。
但是我好想记得 在 ms sql 中直接就有约束条件 级联删除 级联更新 而且两个表之间的关系也可通过 msslq 直接拖拽主键实现。而在程序中我们大多这样写sql user.depar_id=depart.id
我现在不明白的是。这两种方式 得到的结果有什么区别。 那种好一点。 上学的时候学校里面教的是在mssql吧关系都做好
可是现在 在外面公司做项目 再看网上的一些程序。似乎没人在数据里建立关系 而都是在 程序里面直接写 sql 了
好了问题就这些 感谢博客园的 朋友解答。
这两种都可行,只不过外键的方式,在性能上略略低一些(会有一些额外的检查), 自己处理的话程序逻辑读起来更清析一些~~如果要考虑兼容 mysql 的MYISAM 还是自己写吧,这个不支持外键关联.
俺做Web基本上不用级联操作..
建立关系还是有好处的,能够从数据库层面杜绝错误的数据结构,有时一个代码BUG就可能造成数据灾难,像级联删除这种情况,由代码明确写出整个删除过程,会比数据库里自动完成要好。
现在的一些项目可能是追求速度,或者有些人不太懂数据库原理,故而没编写关系。