不是必须的要建关系的,看业务的需要。
举个例子, 比如你有个 图书馆管理系统。
有个图书表[ 图书ID,图书名... ],有个借阅记录表 [ 借阅人ID, 图书ID, 借阅时间...]。
某些书遗失了,或者报废了,需要从数据库表中删除。
希望书删除的同时, 顺便把这本书的借阅记录,顺便也一起删除了。
那么这种情况下,创建个 DELETE CASCADE 外键约束, 你就不必去写存储过程/触发器之类的去做
当删除书的时候,还要删除借阅记录 的代码了。 数据库自动帮你完成。
关系的另外一个用处,就是避免垃圾数据。
还是上面的那个例子
有了外键关联以后,
如果你的操作错误,向 借阅记录表 中 INSERT 数据的时候, 填写了一个不存在的 图书ID
那么数据库就会提示你,说这条记录不能插入。
你就会回去仔细看看,你刚才输入的 图书ID, 在 图书表里面,到底有没有。
参考资料:http://hi.baidu.com/wangzhiqing999/blog/item/969f70fa84e2873e5d600821.html