likefly
V2EX  ›  数据库

公司用多列做主键,但是我觉得没必要

  •  
  •   likefly · Aug 30, 2019 · 5020 views
    This topic created in 2475 days ago, the information mentioned may be changed or developed.

    PRIMARY KEY ('sys_id', 'sys_date')

    说明一下 sys_id 是有序唯一的,且 sys_id 的前缀其实就是 sys_date,我上司说就这么搞,我说没必要,然后反问为什么这么搞,然后告诉我说听他的就对了。

    怎么破?

    34 replies    2019-09-03 07:37:48 +08:00
    sadfQED2
        1
    sadfQED2  
       Aug 30, 2019
    领导都对,不容置疑
    luckylo
        2
    luckylo  
       Aug 30, 2019 via Android
    领导说的对,锅也领导背。
    lenmore
        3
    lenmore  
       Aug 30, 2019
    是没必要。除非想用分区表。
    iPhoneXI
        4
    iPhoneXI  
       Aug 30, 2019 via Android
    没有隐患就随他去
    shoaly
        5
    shoaly  
       Aug 30, 2019
    如果没有明显的问题 就不要反驳的, 你们操心的点不一样, 她没必要都给你讲清楚, 或者讲懂才能让你这么做的... 不然 你就成领导了
    keakon
        6
    keakon  
       Aug 30, 2019
    @livid 标签多识别了一个引号
    sadfQED2
        7
    sadfQED2  
       Aug 30, 2019 via Android
    @luckylo 不应该是领导说得都对,锅你自己背吗
    zakokun
        8
    zakokun  
       Aug 30, 2019
    反正你内心坚持自己是对的就行了. 领导很多技术上也不是多厉害
    luckylo
        9
    luckylo  
       Aug 30, 2019 via Android
    @sadfQED2 按照领导的方案做,就可以怼回去😂😂
    sadfQED2
        10
    sadfQED2  
       Aug 30, 2019 via Android
    @luckylo 领导:我只是给你建议,现在出问题了,你说咋办吧[🐶]
    securityCoding
        11
    securityCoding  
       Aug 30, 2019
    没见过 , unique 倒是可以
    luckylo
        12
    luckylo  
       Aug 30, 2019 via Android
    @sadfQED2 这个改动大,要两周才能搞好。(实际一周搞好,三天测试,两天摸鱼)😂😂😂
    likefly
        13
    likefly  
    OP
       Aug 30, 2019
    @sadfQED2 只能翻翻白眼了事了
    likefly
        14
    likefly  
    OP
       Aug 30, 2019
    @lenmore 回看了以前建的表,百分之十是这么搞的,我觉得他可能对索引有误解
    likefly
        15
    likefly  
    OP
       Aug 30, 2019
    @shoaly 问题确实是不会出问题,但是看了感觉不像是工作 10 年的人建的表。。。
    likefly
        16
    likefly  
    OP
       Aug 30, 2019
    @securityCoding 已经是主键了
    erenming
        17
    erenming  
       Aug 30, 2019 via iPhone
    不要你觉得,要我觉得
    pubby
        18
    pubby  
       Aug 30, 2019   ❤️ 1
    不了解应用场景,不评价。
    xiamx
        19
    xiamx  
       Aug 30, 2019
    都告诉你听他的就对了你咋还这多事儿呐
    iConnect
        20
    iConnect  
       Aug 30, 2019 via Android
    你问他“奥卡姆剃刀”原理,知道吗?
    Livid
        21
    Livid  
    MOD
    PRO
       Aug 31, 2019 via iPhone
    如果表上还有 partition,那么确实会需要把用于分区的列也放入主键。
    kxjhlele
        22
    kxjhlele  
       Aug 31, 2019 via Android
    我们的业务 常年 3 列为主键,类似时序内容,
    jinsongzhao
        23
    jinsongzhao  
       Aug 31, 2019
    @Livid 哇不错,学了一招。原来分区还需要这样
    jinsongzhao
        24
    jinsongzhao  
       Aug 31, 2019
    @likefly 如果是为了将来升级性能预留的设计,感觉这是超过 10 年工作经验的人才会考虑的问题吧。
    @Livid 果可能产生超多数据的表,岂不是都应该把时间加入主键。看来 hibernate 中复合键的各种操作,有必要玩得溜溜的,费那么大力气设计了这个功能,也从未看人抱怨还是有道理的。
    leeton
        25
    leeton  
       Aug 31, 2019
    反正背锅的是你
    jorneyr
        26
    jorneyr  
       Aug 31, 2019
    你行你上啊 ^_^
    ruhexiechengxu
        27
    ruhexiechengxu  
       Aug 31, 2019 via Android
    不要你觉得,要领导觉得
    sdot96
        28
    sdot96  
       Aug 31, 2019 via Android
    对数据表进行分区的列必须属于主键,可能是考虑以后数据量大了直接用 sys_date 做 range 分区
    Kenhengge
        29
    Kenhengge  
       Aug 31, 2019
    谁负责听谁的,人家要担负失败责任,你提出意见就尽到责了,采纳与否负责的人权衡。也许你的方案也行,但是条条大路通罗马,人家的方案成功过,风险可控,按他的路继续走无可厚非
    conn4575
        30
    conn4575  
       Aug 31, 2019
    可能是为了按时间分区
    whywhywhy
        31
    whywhywhy  
       Aug 31, 2019 via Android
    我们在用的 erp 系统,没有主键。。。sqlserver,没有主键。。。。

    ID 字段是 uuid
    likefly
        32
    likefly  
    OP
       Sep 2, 2019
    @jinsongzhao
    @sdot96
    受教了
    jinsongzhao
        33
    jinsongzhao  
       Sep 2, 2019
    @whywhywhy uuid 就是主键吧,可能是你们在导入导出数据时,重建表了,主键自动消失了。很多运维人员维护数据库时,也会把主键搞掉。
    whywhywhy
        34
    whywhywhy  
       Sep 3, 2019
    @jinsongzhao 我导入导出从不动表的,一般直接导整个数据库,看了很多表都是没主键。没看到有主键的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3435 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 11:44 · PVG 19:44 · LAX 04:44 · JFK 07:44
    ♥ Do have faith in what you're doing.