数据库表与表之间是加外键关联好呢还是不加好??

smallmonkeandyjj 2010-04-22
在做项目的时候,经常要建很多的表,,有时候就要用到外键关联,用的时候就方便,但是有时候要改动表就很麻烦,,因为有了外键就不可以随便动表了。。
到底是建外键好呢,还是不建好??
lucky16 2010-04-22
当然是在不需要建的时候最好不要外键咯,如果必须要建外键,那就没有办法了!
话说回来,建外键后,改动数据确实挺麻烦的!
taotao1900 2010-04-22
恩  是的  用的好的话省事,用的不好的话 呵呵 整自己
yunj 2010-06-09
数据库的3个还是5个范式,有时候也得破坏。为了提高效率,有时候必须让数据冗余些
s-s-h 2010-07-10
这真是个问题,不过如果把表表之间错综复杂的关系都弄得清清楚楚的话,问题可以迎刃而解的
chenxiang105 2010-08-12
当然不要建外键..
所有关联多张表的操作,都放在一个事务中(这是必须的),保证数据完整.这样效率较高.
任何这样的操作都要清楚表的管理。。没有外键却要在业务中铭记主外键的存在!
blogzhoubo 2010-10-19
这个要看业务需要,如果业务上必须要保证数据的完整性和一致性,那么就必须使用外键。如果不需要的话,建了就是画蛇添足了。

至于改动表时很麻烦的问题,其实也可以解决。可以先把外键约束disable掉,然后进行表的改动操作,操作完了再enable回来就可以了。

alter table tt disable constraint pk_tt;
alter table tt enable constraint pk_tt;
香飘飘2011 2011-08-17
我觉得还是不要弄外键的好,做项目时用户的需求是不断的,因此表的改动也是挺频繁的,只要自己将整个业务的逻辑思维理清了,将关联到多张表的操作放在一个事务中去处理,效率还更高些。
Global site tag (gtag.js) - Google Analytics