这个不一定的,因为按照需求来说如果达不到这个外键数你的功能可能实现不了,或者需要很麻烦的手段才能实现,这样就涉及到先以实现功能为主导,到后来在以优化,就比如说按要求,for循环中不允许超过4个嵌套for,但是这个需求要实现这个功能最好的办法只能这么办,那就只能先这么做了,代码的优化就等以后再做了

解决方案 »

  1.   

    完全可以用数据库的功能避免,比如被外键的值不允许更新或更新的话与它关联的字段一起更新什么的.
    on update casecade/delete/...
      

  2.   

    如果用hibernate 的话 外键还是很方便的 
      

  3.   

    很多大数据高压力是不做外键的,都由程序自己保证外键一多,必然影响数据的insert和update的效率,如果对效率要求不是很高,倒是无所谓
      

  4.   

    不合理。外键约束应该被放弃,由程序逻辑来控制外键关系,而不是使用数据库的外键约束。如果用 foreign key 的话,时间越久,你会发现 FK 越不应该存在。至于为什么,等你碰到了就知道了,嘿嘿
      

  5.   

    外键多说明查询做表连接就多,表连接过多严重影响sql的性能。
      

  6.   

    外键通过程序控制。比如hibernate实体类的关系。数据库里用外键严重影响性能。而且搞测试不好搞。
      

  7.   

    学过Hibernate没?这就是典型的程序逻辑控制外键,外键的控制策略不交给数据库去做,而是由你的程序来控制。
      

  8.   

    有外键的那个表叫主表
    引用外键的那个表叫从表主表到从表叫做一对多  用set集合控制
    从表到主表叫多对一  用主表的对象最为从表对象的一个属性
      

  9.   

    恩,有道理,不过spring mvc的话怎么用程序去实现呢?
      

  10.   

    不好意思,我要问的是mybatis怎么配置
      

  11.   

    用Hibernate的来持久化的话,体现在数据库里,还是相当于在一个表里添加了外键吧。
      

  12.   

    实话,5个FK是杯具。
    一个表 超过2个fk,就不好用了,尤其数据量比较大的时候。
      

  13.   

    如何我用Hibernate来持久化,同样的问题,假设一个实体类里包含了较多的其他实体类,这样会不会影响太大的性能呢?