V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ZiLong
V2EX  ›  问与答

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

  •  
  •   ZiLong · 2016-09-26 16:57:05 +08:00 · 2873 次点击
    这是一个创建于 2762 天前的主题,其中的信息可能已经有所发展或是发生改变。
    18 条回复    2016-09-27 11:33:23 +08:00
    liprais
        1
    liprais  
       2016-09-26 17:03:43 +08:00
    因为 mysql 外键性能差
    ilotuo
        2
    ilotuo  
       2016-09-26 17:08:12 +08:00
    外接键盘太吵
    loveyu
        3
    loveyu  
       2016-09-26 17:10:01 +08:00 via Android
    加上也是可以的!如果你能保证不加外键一样不出 bug
    felixzhu
        4
    felixzhu  
       2016-09-26 18:48:13 +08:00
    想好分库分表的时候怎么做
    ZiLong
        5
    ZiLong  
    OP
       2016-09-26 18:52:40 +08:00
    @felixzhu 这还会牵扯到分库分表
    ZiLong
        6
    ZiLong  
    OP
       2016-09-26 18:53:00 +08:00
    @loveyu 我就是担心这个不好保证吧
    ZiLong
        7
    ZiLong  
    OP
       2016-09-26 18:53:14 +08:00
    @ilotuo 恩,你说的太对了
    ZiLong
        8
    ZiLong  
    OP
       2016-09-26 18:54:45 +08:00
    @liprais 为什么性能差呢?有相关文档介绍过么?然后最佳的解决方案就是不用?
    murmur
        9
    murmur  
       2016-09-26 19:14:54 +08:00
    不用外键的话 级联删除这种自己做也行 反正互联网应用也不要事务的趋势 mongo 都可以上 自己删关联有什么不可以
    ZiLong
        10
    ZiLong  
    OP
       2016-09-26 19:49:49 +08:00
    @murmur 自己做级联删除,那表多了,关系复杂的话,比如你删除的记录关联的记录又关联了其他记录....这样的,级联靠自己,心智负担还是有点大.
    loveyu
        11
    loveyu  
       2016-09-26 21:57:06 +08:00 via Android
    @ZiLong 感觉也是可行的!外键只做关联,不做级联操作,和没有外键的差别不大,还可以保证数据一致性
    qwer1234asdf
        12
    qwer1234asdf  
       2016-09-26 23:21:53 +08:00 via iPhone
    表抽象的好,外键用着还是蛮爽的……
    georgema1982
        13
    georgema1982  
       2016-09-27 04:30:49 +08:00
    不使用外建,说明你没有用类的观点来审视你数据库的设计,一般这会导致你到后期才注意到表设计的不合理
    iloveyou
        14
    iloveyou  
       2016-09-27 09:09:06 +08:00
    现在不都是软删除?用外键?
    ZiLong
        15
    ZiLong  
    OP
       2016-09-27 10:46:28 +08:00
    @iloveyou 软删除,所有关联这条记录的都置空,还是以后查询的时候多个条件判定删除标志
    ZiLong
        16
    ZiLong  
    OP
       2016-09-27 10:47:07 +08:00
    @qwer1234asdf 我还是觉得外键用着爽,公司没用,我就 u 太明白
    ZiLong
        17
    ZiLong  
    OP
       2016-09-27 10:49:22 +08:00
    @georgema1982 可以详细说下你的观点么,或者有相关文档文章推荐
    beidouxun
        18
    beidouxun  
       2016-09-27 11:33:23 +08:00 via Android
    用外健啊!只是关联,不设置级联删除,因为自己写删除灵活。有时候上级删了,但是我想保留下级。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1140 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:25 · PVG 02:25 · LAX 11:25 · JFK 14:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.