oracle推荐,约束是个好的选择,能够比较好的定义数据的范围.但在实际开发中,由于需求的变化反复,尽量简单点的好

解决方案 »

  1.   

    如果这个表格主要是查询不怎么会影响效率。
    但是如果需要频繁的插入,修改,删除,则会有很大的影响。oracle会自己去检测是否符合规则。
    如果你能够自己很好的处理数据的一致性,并通过其它方式改进查询的效率,也是可以使用外键。
    我个人的经验是在一些不常常改变数据的小表上,又是比较基础的数据上使用外键。
      

  2.   

    如果外键导致死锁,只有一个原因:外键没有建索引如果外键没有建索引,那么修改主表的主键列或者主表insert数据时,会将这个子表锁住,降低系统并发性,导致死锁产生的可能性大大增加。如果你要频繁的修改主表,或者需要将主表和子表做join查询,那么外键一定要建索引,否则就够你受的^_^
      

  3.   

    在数据量非常大的表中建外键对效率影响很大的。如果对表的操作有删除,更新,插入操作的话,建议最好去掉外键,程序控制数据的准确性。至于死锁,估计是ORACLE运行的效率非常低的原因吧
      

  4.   

    --------------------------------------------------------------
    您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
    您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
    http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选终选的30位数据库工程师将与您展开积极的互动。他们会为您的问题提供满意的答案,此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
    http://www.bestdba.cn/match_discussion3.aspx?pointid=495&pointid2=1&pointid3=5&pcount=stc非常感谢您对本次活动的支持!
    --------------------------------------------------------------