ZiLong
V2EX  ›  问与答

在开发阶段该不该使用外键?如果不使用,理由是什么呢?

  •  
  •   ZiLong · Sep 26, 2016 · 3516 views
    This topic created in 3550 days ago, the information mentioned may be changed or developed.
    18 replies    2016-09-27 11:33:23 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       Sep 26, 2016
    因为 mysql 外键性能差
    ilotuo
        2
    ilotuo  
       Sep 26, 2016
    外接键盘太吵
    loveyu
        3
    loveyu  
       Sep 26, 2016 via Android
    加上也是可以的!如果你能保证不加外键一样不出 bug
    felixzhu
        4
    felixzhu  
       Sep 26, 2016
    想好分库分表的时候怎么做
    ZiLong
        5
    ZiLong  
    OP
       Sep 26, 2016
    @felixzhu 这还会牵扯到分库分表
    ZiLong
        6
    ZiLong  
    OP
       Sep 26, 2016
    @loveyu 我就是担心这个不好保证吧
    ZiLong
        7
    ZiLong  
    OP
       Sep 26, 2016
    @ilotuo 恩,你说的太对了
    ZiLong
        8
    ZiLong  
    OP
       Sep 26, 2016
    @liprais 为什么性能差呢?有相关文档介绍过么?然后最佳的解决方案就是不用?
    murmur
        9
    murmur  
       Sep 26, 2016
    不用外键的话 级联删除这种自己做也行 反正互联网应用也不要事务的趋势 mongo 都可以上 自己删关联有什么不可以
    ZiLong
        10
    ZiLong  
    OP
       Sep 26, 2016
    @murmur 自己做级联删除,那表多了,关系复杂的话,比如你删除的记录关联的记录又关联了其他记录....这样的,级联靠自己,心智负担还是有点大.
    loveyu
        11
    loveyu  
       Sep 26, 2016 via Android
    @ZiLong 感觉也是可行的!外键只做关联,不做级联操作,和没有外键的差别不大,还可以保证数据一致性
    qwer1234asdf
        12
    qwer1234asdf  
       Sep 26, 2016 via iPhone
    表抽象的好,外键用着还是蛮爽的……
    georgema1982
        13
    georgema1982  
       Sep 27, 2016
    不使用外建,说明你没有用类的观点来审视你数据库的设计,一般这会导致你到后期才注意到表设计的不合理
    iloveyou
        14
    iloveyou  
       Sep 27, 2016
    现在不都是软删除?用外键?
    ZiLong
        15
    ZiLong  
    OP
       Sep 27, 2016
    @iloveyou 软删除,所有关联这条记录的都置空,还是以后查询的时候多个条件判定删除标志
    ZiLong
        16
    ZiLong  
    OP
       Sep 27, 2016
    @qwer1234asdf 我还是觉得外键用着爽,公司没用,我就 u 太明白
    ZiLong
        17
    ZiLong  
    OP
       Sep 27, 2016
    @georgema1982 可以详细说下你的观点么,或者有相关文档文章推荐
    beidouxun
        18
    beidouxun  
       Sep 27, 2016 via Android
    用外健啊!只是关联,不设置级联删除,因为自己写删除灵活。有时候上级删了,但是我想保留下级。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5367 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 08:59 · PVG 16:59 · LAX 01:59 · JFK 04:59
    ♥ Do have faith in what you're doing.