首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  数据库

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

  •  
  •   likefly · 75 天前 · 3439 次点击
    这是一个创建于 75 天前的主题,其中的信息可能已经有所发展或是发生改变。

    PRIMARY KEY ('sys_id', 'sys_date')

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

    怎么破?

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

    ID 字段是 uuid
        32
    likefly   72 天前
    @jinsongzhao
    @sdot96
    受教了
        33
    jinsongzhao   72 天前
    @whywhywhy uuid 就是主键吧,可能是你们在导入导出数据时,重建表了,主键自动消失了。很多运维人员维护数据库时,也会把主键搞掉。
        34
    whywhywhy   71 天前
    @jinsongzhao 我导入导出从不动表的,一般直接导整个数据库,看了很多表都是没主键。没看到有主键的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   917 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 20:44 · PVG 04:44 · LAX 12:44 · JFK 15:44
    ♥ Do have faith in what you're doing.