Etuloser
V2EX  ›  数据库

大家是怎么看待数据库字段用拼音命名的

  •  
  •   Etuloser · Mar 12, 2018 · 15513 views
  •   The specified image does not exist
    This topic created in 3019 days ago, the information mentioned may be changed or developed.

    我觉得用拼音更加直观,也没什么坏处啊,为什么这么多开发者鄙视这一做法

    196 replies    2018-03-26 22:19:10 +08:00
    1  2  
    shiji
        101
    shiji  
       Mar 12, 2018
    另外即使是英文,四级词汇了基本够了吧。
    l00t
        102
    l00t  
       Mar 12, 2018
    拼音首字母很常见。用拼音全拼的反而少。数据库字段名字长度是有限制的,不可避免要各种缩写。反正都要提供数据库表结构说明和数据字典的,用拼音首字母缩写也挺好的,不会出现各种不同的翻译名。
    gamexg
        103
    gamexg  
       Mar 12, 2018
    清晰易读即可,
    至少比缩写到只 2、3 个字母的好太多!!!
    logOo
        104
    logOo  
       Mar 12, 2018   ❤️ 1
    打开词典,翻译一下,好几个,选这个。别人看了,哎,你意见很大啊,还用英文骂人。
    wtgam
        105
    wtgam  
       Mar 12, 2018
    所有说用拼音无所谓的,请问写过多少项目?
    zimer
        106
    zimer  
       Mar 12, 2018
    代码规范决定的吧,显得正式些。
    但是用生僻的或不常见的单词命名时有事就显得鸡肋了,大家都不熟悉而去命名搞得就南辕北辙了,还不如用拼音。
    还有就是英文单词过长而且合成词的时候也还是用拼音吧。
    具体情况具体规范吧。
    但对全拼还是有点接受不了。
    otakustay
        107
    otakustay  
       Mar 12, 2018   ❤️ 1
    互联网和企业 IT 根本是 2 个世界,互联网上大部分概念还是熟知的英文能解决的,到了企业 IT 里面,一个工作流跑起来里面的那些领导开脑洞出来的节点能翻译成英文算你赢
    Moorj
        108
    Moorj  
       Mar 12, 2018
    全中文命名路过
    realpg
        109
    realpg  
    PRO
       Mar 12, 2018   ❤️ 1
    而我个人掌控的团队,更倾向于一种有规则的中英文混用,相关规则所有成员都明确

    有单一简单单词,且不会发生歧义的,或者有英文缩写的,用英语,驼峰法

    比如:
    id url title

    有些较长的词,在数据库字段类频繁出现的,用自定义短写,这也有一些防止万一出现注入类漏洞被盲猜的作用,敏感关键字设置的比较罕见主要是防止这个

    比如:
    description -> des
    title -> tit
    content -> cont
    password -> psw
    username -> unm
    admin -> amn
    count -> cnt
    time -> T ==> create time -> createT; update time -> updateT
    date -> D ==> last modify date -> last_modifyD

    对于国内业务逻辑 难以翻译 或者翻译后冗长的项目,采用全拼或者拼音缩写均可,且包含这种项目的必须定义数据字典;数据字典应写入数据库内表备注,以及项目手册,同时对于这种字段超过 5 个的单表,在总表备注数据字典以外,必须每个字段的备注中用中文简称写出这个字段的无歧义大致含义。在整个项目的基本需求限制中说明允许使用中文字段的,可以采用中文字段名。
    citydog
        110
    citydog  
       Mar 12, 2018
    矫情,爱用啥用啥,自己觉得哪个方便用哪个
    imn1
        111
    imn1  
       Mar 12, 2018
    真搞不清楚这有什么好争的?!还上升到逼格?!

    数据库 /表 /字段等等的命名,无非就是分类学的标签命名而已
    争来争去,无非就是通用范围,英语通用范围广,汉语通用范围小罢了
    实际上,说通用范围,全数字肯定通用范围最广,为啥不用全数字?

    正如域名,使用域名就是用表意替代全数字 ip
    既然表意,在一定范围内全员(或绝大部分)能明白就足够了
    字段名等等同理

    20 年前,说用汉语拼音作域名太 low 的多了去了(那时拼音域名很难卖的),虽然今时今日还有这种声音,但相比 20 年前已经相差甚远了

    我以前搞不清为啥软件要用希腊语 alpha/beta 区分,不能用 pre/test 之类纯英语
    估计现在很多人会觉得后者 lowB 吧


    大家不妨了解一下“分众分类法”
    jmc891205
        112
    jmc891205  
       Mar 12, 2018
    我是无所谓 只是公司里的外籍同事们肯定会反对
    说起来 开会的时候只要有一个外国人在场 我们所有人都要讲英文= = 真是太讨厌了
    miniwade514
        113
    miniwade514  
       Mar 12, 2018
    不加声调的情况下,怎么确保可读性?
    我的观点是,不仅要用英文,而且尽量用完整的单词,少用缩写。
    用 Google 翻译那么方便,多打几个字母也耽误不了多少时间,为什么要懒呢?
    yujieyu7
        114
    yujieyu7  
       Mar 12, 2018
    英文命名一定是标准的规范,但有时不得不吐槽一下,很多中文简洁的词汇英文会特别长或者很生僻,自己或别人都一下看不懂,这时候就真不如拼音好用了
    ethusdt
        115
    ethusdt  
       Mar 12, 2018
    http://unbug.github.io/codelf/

    安利某 v 友开发的 查看大佬们都是怎么命名变量的
    Henryzhao
        116
    Henryzhao  
       Mar 12, 2018 via Android   ❤️ 1
    拼音首字母是最绝望的,XM XB SFZH CSRQ ZXSJ
    wayway
        117
    wayway  
       Mar 12, 2018
    拼音并不是一种语言形式
    本质是因为这个。
    SunnyCoffee
        118
    SunnyCoffee  
       Mar 12, 2018
    之前做过一款和医疗相关的 App,有个病史,包括高血压、冠心病、糖尿病,我也试过用英文命名,最后放弃了,改用拼音缩写
    timothyqiu
        119
    timothyqiu  
       Mar 12, 2018
    拼音只是汉字的转写注音,不是单独的文字。
    zhttty
        120
    zhttty  
       Mar 12, 2018
    拼音也要符合一定的命名规范,其实没什么不好,而且可维护性都不错;那些说某部门某产品拼音可维护性差的,即便换成英文命名,团队尿性也一样。

    PinyinYeyaoFuheYidingDeMingmingGuifan

    PinYin-YeYao-FuHe-YiDing-De-MingMing-GuiFan
    srx1982
        121
    srx1982  
       Mar 12, 2018
    你要用拼音,那就找个地方写清楚拼音对应的文字,要不新来的得使劲猜
    ligyxy
        122
    ligyxy  
       Mar 12, 2018
    因为看不懂和有歧义
    xAx
        123
    xAx  
       Mar 12, 2018   ❤️ 1
    实际经验是用全拼或英文单词,只有风格统一,并不是什么太大的问题,只是要人命。

    但是用全拼会出现命名太长的问题,所以很多人就用首字母简写。这真就要人命了,看名字真 TMD 猜不出来是个什么意思。当数据库字段映射到代码又不做转换时,代码真的看死人。

    如果用全拼,不考虑命名太长这个问题的情况下,
    拼音命名与英文命名相比一个最大劣势是没有声调,没有声调的拼音...又要靠猜。

    代码命名一直强调的是见名知义,拼音毕竟只有音没有意,表达不了汉字意思。
    现在支持 utf8 命名的语言也有不少了,在这类语言中用拼音还真不如用汉字。

    用汉字又要在输入法上不停的切来切去,所以最终的综合选择还是用英文单词对开发人员比较方便一点。

    ----------
    对于一个拒绝拼音拒绝北京话的人来说,用英文最少不会污染中文
    LokiSharp
        124
    LokiSharp  
       Mar 12, 2018
    我觉得比用英文好 看起来方便
    nuxt
        125
    nuxt  
       Mar 12, 2018
    好的命名自己会说话,用拼音不得加注释?要不然鬼才知道什么意思
    mengzhuo
        126
    mengzhuo  
       Mar 12, 2018
    pin yin mei wen ti jiu shi bu yao gei wo sou xie le...
    jackqian
        127
    jackqian  
       Mar 12, 2018 via iPhone
    @ctro15547 heilishi 是啥
    mengzhuo
        128
    mengzhuo  
       Mar 12, 2018

    o, hai you a. shui yao shi bu xie zhu shi, kan wo bu da si ta!
    blankme
        129
    blankme  
       Mar 12, 2018 via Android
    @jackqian
    black history
    jeremaihloo
        130
    jeremaihloo  
       Mar 12, 2018
    @nuxt #125 嗯,你可以尝试一下随便写一段话的拼音,然后你找人读一遍,你会发现他能读出来,而且知道什么意思,而且国内很多企业的业务词汇,没法用英文翻译到位,或者说翻译到位了,但是会很长到不能接受
    ecloud
        131
    ecloud  
       Mar 12, 2018
    首先我要说的是,当年设计的这套罗马字母的拼音系统就很不完善,bug 多多
    如果说可以直接用汉字命名,我没什么意见
    Servo
        132
    Servo  
       Mar 12, 2018
    WO UF VI XD YS UD PN
    lifesimple
        133
    lifesimple  
       Mar 12, 2018
    约定好就行啦 不要一会英语一会拼音
    est
        134
    est  
       Mar 12, 2018
    拼音没啥问题。但是 user 表你要写成 yonghu 我也是很无语的。
    YanSep
        135
    YanSep  
       Mar 12, 2018 via Android
    你一定没见过中文命名的
    lastpass
        136
    lastpass  
       Mar 12, 2018 via Android
    遇见一个拼音首字母命名的项目。看的我各种崩溃。
    lastpass
        137
    lastpass  
       Mar 12, 2018 via Android
    回复 @est 我比较无语的是遇到 yh 表。里面全是 yhm,mm 这种命名方式的。
    crist
        138
    crist  
       Mar 12, 2018
    wo jue de hai ke yi jie shou a, wei sen me bu xing?
    jinyu121
        139
    jinyu121  
       Mar 12, 2018
    # 如何看待数据库表、字段全中文命名的项目?

    曾经接触过一个行业应用,Delphi+SQLServer,仔细一看数据库,吓懵了,所有表和字段统统中文命名,比起拼音来说,极其简洁易懂,而且充分发挥 SqlServer 可以使用中文来命名表和字段的神力……

    # 如何看待使用中文编程?

    大一,第一学期,旁边寝室开始学 C++,VS2010

    ```
    int main(){
    int 第一个数 = 2;
    int 第二个数 = 3;
    cout<<第一个数+第二个数<<endl;
    }
    ```

    让我第一次感受到了 VS 的强大……

    后来好像是因为输入法要来回切换,最终放弃了?

    # 如何看待使用拼音命名?

    其实挺奇怪的感觉。

    比如 ly_master_xingming,楼宇管理员姓名…… regzhuangtai, qiandaostat, canyuhdsj ……(后几个你猜猜是啥?木有注释的哦~)

    所以,如果条件允许,又不想让别人理解代码 /出于保密需要的话,我们可以翻译成阿拉伯文做数据库字段……

    或者使用双拼方案~
    dilu
        140
    dilu  
       Mar 12, 2018
    @drunkbeta 是的 就是用来记录是否爆满 并且这样一个简单的东西 用枚举类型就行 他还用的 int...
    ovear
        141
    ovear  
       Mar 12, 2018
    可以简单表达的用英语,复杂的中文或者拼音,注释写好
    zhang1215
        142
    zhang1215  
       Mar 12, 2018
    没用汉字命名就不错了
    MeteorCat
        143
    MeteorCat  
       Mar 12, 2018 via Android
    看情况,有的字段实际上真不知道怎么表达,比如游戏活动里面有个汤圆统计统计表,emmmm,我直接用拼音来解决了
    Clarencep
        144
    Clarencep  
       Mar 12, 2018
    我觉得有些时候真心翻译不出来英文的,用拼音命名也是可以接受的。

    比起拼音命名的更蛋疼的是:一个字段命名好了,代码也写了一堆了,马上要上线了,可是产品经理说要改成另外一个东东,整体逻辑改动倒是不大,可是命名怎么办?! 别问我是怎么知道的 -- 周五特价 -> 周末特价 -> 周一特价 -> 每周特价,这改动伤不起啊!
    lalala121
        145
    lalala121  
       Mar 12, 2018
    都是听说,从来没见过
    auin
        146
    auin  
       Mar 12, 2018
    用什么无所谓,团队一致且认可就行,但是对我来说全拼很不适应!我不是用全拼输入法,写起来顿挫感很强,估计我融入不了该团队
    northisland
        147
    northisland  
       Mar 12, 2018
    翻不出英文,说明对这块业务的把握不到位~呗

    我经常为一个变量名字,纠结半小时,也是奇葩了

    所以,我感觉随便起个名字 + review 的时候全局替换,是比较节省时间的做法
    t2doo
        148
    t2doo  
       Mar 12, 2018
    [power_com] => 23
    [power_com_contact] => 24
    [power_com_tel] => 25
    [power_section_contact] => 30
    [power_section_tel] => 31
    [thief_police] => 32
    [thief_police_contact] => 33
    [thief_insure_tel] => 37
    [thief_local_com_contact] => 42
    [thief_local_com_tel] => 43
    就问你怕不怕。。。
    20015jjw
        149
    20015jjw  
       Mar 12, 2018 via Android
    要么用中文要么用英文 拼音找喷漆
    lcc4376
        150
    lcc4376  
       Mar 12, 2018
    我做過,但被架勾師全改成英文的,後來我就只用英文
    tcpdump
        151
    tcpdump  
       Mar 12, 2018
    机房 怎么翻译
    Jeepeng
        152
    Jeepeng  
       Mar 12, 2018
    可读性好就行
    ShareDuck
        153
    ShareDuck  
       Mar 12, 2018 via Android
    非常用英语能表达的,环境支持的,直接用中文,有些词汇,根本无法翻译陈英文。不支持的,用拼音全拼,强烈反对拼音首字母缩写的。
    keenkiller
        154
    keenkiller  
       Mar 12, 2018
    一般是用英文的,因为拼音的可读性其实很差,用首字母就更扯了。以下情况除外:
    1. 很难用英文描述的 PM 自造词语;
    2. 项目业务过于复杂 /专业,写英文也没几个人能看懂;
    vvvvww
        155
    vvvvww  
       Mar 12, 2018
    全拼还好,遇到没有韵母全是拼音首字母的才奔溃
    tabris17
        156
    tabris17  
       Mar 12, 2018
    宁可接受中文字符,也不接受拼音字母
    psyche
        157
    psyche  
       Mar 12, 2018   ❤️ 3
    说用拼音有问题的麻烦翻译一下境界, 神炉, 化境, 修为, 兵鉴, 称霸天下, 洗练, 元神...
    有些佛教和道教名词有正儿八经的翻译比如 garan(伽蓝), reincarnation(转生), sansara(轮回), 但是写出来你确定有人看得懂吗
    xxgirl2
        158
    xxgirl2  
       Mar 12, 2018
    类似「施氏食狮史」的例子最可怕,对于我们五笔用户来说看拼音更加痛苦。
    当然用什么标识不重要,文档一定要跟上,要不然就等于是看着源码做逆向反混淆了。
    zhouzm
        159
    zhouzm  
       Mar 12, 2018
    看样子做政府部门业务系统的人不多啊,使用拼音首字母缩写做数据库字段名几乎是行业标准啊,甲方业务人员只要看到字段名马上就知道这是什么字段了,你用英文试试。用全拼?开什么玩笑,写 sql 的程序员不敲死你。
    只有与业务基本无关的数据表才会使用英文单词做字段名。

    有兴趣的可以了解一下金税的数据表设计。
    z1154505909
        160
    z1154505909  
       Mar 12, 2018
    @logOo 我就碰到过啊,谷歌翻译找的单词,别人再翻译回去,另一个意思了
    ConradG
        161
    ConradG  
       Mar 12, 2018
    至少比水平不够错用英文单词好
    paicha
        162
    paicha  
    PRO
       Mar 12, 2018
    这是钓鱼贴?
    xierch
        163
    xierch  
       Mar 12, 2018
    用拼音是无法使用汉字的代替方案吧,还容易产生歧义……
    如果确实需要使用拼音,不如先解决一下无法使用汉字的技术问题,然后用汉字吧。
    xierch
        164
    xierch  
       Mar 12, 2018
    直接使用汉字的坑在于各种软件、工具、库的兼容问题?
    比如楼上有人提到的删了半个汉字什么的……
    这都是技术上可以解决的问题…
    拼音的问题,歧义、可读性差……这些都是没办法的
    rockyou12
        165
    rockyou12  
       Mar 12, 2018
    要是所有软件都能很好支持 utf-8 ……业务字段我真的想用中文
    akinoneko
        166
    akinoneko  
       Mar 12, 2018
    看过正方教务系统的数据库你就懂了,全是拼音缩写
    imnpc
        167
    imnpc  
       Mar 12, 2018
    数据库字段加注释说明 你用啥都行
    geek123
        168
    geek123  
       Mar 12, 2018
    国标就是这种。
    chuanfujiang
        169
    chuanfujiang  
       Mar 12, 2018 via iPhone
    @rockyou12 前天的项目上字段名称就因为中文的编码关系,软件里 utf8 转 txt 不完全,临场改的拼音首字母字段,今天看到这帖子......
    AWKWARD :-I
    abdiweli
        170
    abdiweli  
       Mar 12, 2018
    我们都是直接中文字段名。
    hisuiibmpower4
        171
    hisuiibmpower4  
       Mar 12, 2018
    @SunnyCoffee “有个病史,包括高血压、冠心病、糖尿病” 病人 patient Pt 高血压 hypertension HT 糖尿病 diabetes DB,冠心病 Coronary artery disease CAD 这些是有固定缩写的,你不是健康业从业人员,不知道正常。想学英文依然要提高自己词汇量
    kmahyyg
        172
    kmahyyg  
       Mar 12, 2018 via Android
    109 楼没问题

    那些用拼音首字母命名的,看一次怕一次,后面接手的人还得才这是什么那是什么,连你们做个 http respone 的 json 的 key 都弄成拼音首字母的也是够了。

    个人建议:第一个用英文单词的前四个字母+驼峰命名+一个词大致描述

    如果国内特色严重的,直接全拼。别废话。
    8Cangtou
        173
    8Cangtou  
       Mar 12, 2018
    支付变量名 gxs................供销社
    123qqqqqq
        174
    123qqqqqq  
       Mar 12, 2018
    不好意思, 不能忍,顺手查下词典会死?
    hasbug
        175
    hasbug  
       Mar 12, 2018
    英文长的就拼音
    CodeM
        176
    CodeM  
       Mar 12, 2018 via Android
    汉语本来就不是注音文字 看到拼音之后要先把音拼出来再再猜出具体的字,可读性太差了
    我觉得直接打汉字都比拼音要好 好歹不用猜意思猜半天
    AlisaDestiny
        177
    AlisaDestiny  
       Mar 12, 2018
    @snw 这个我有办法:山西:jin(晋) | 陕西:shan(陕).是不是很机智。
    sixm
        178
    sixm  
       Mar 12, 2018
    拼音还行,至少能看懂,最烦的是拼音首字母……
    wangxiaoaer
        179
    wangxiaoaer  
       Mar 12, 2018
    之前见过一个某机密单位的业务系统表结构,大概 400 多张表,每张表大概 60 多个字段,表名和字段名全部是首字母缩写,同时配合有一个同步的数据字典文件,指明每个表名和字段名对应的中文名称,我觉得挺好。

    因为里面涉及到很多业务的字段名,纯英文压根就不是 4 级词汇能覆盖的,可读性等的确比不上拼音首字母缩写。
    sethverlo
        180
    sethverlo  
       Mar 12, 2018
    @realpg title 缩写成 tit。。(手动滑稽
    wizardforcel
        181
    wizardforcel  
       Mar 12, 2018 via Android
    @AlisaDestiny shaan 是三声, 声调有转写规则的。

    实在不行你 shan3 也行。
    current
        182
    current  
       Mar 12, 2018
    @jinyu121
    regzhuangtai, 注册状态
    qiandaostat, 签到状态
    canyuhdsj, 参与活动时间
    ???

    我居然脑补出来了。。。
    zicla
        183
    zicla  
       Mar 12, 2018
    看到数据库是拼音命名的就想拉出去打一顿。
    MonoLogueChi
        184
    MonoLogueChi  
       Mar 12, 2018 via Android
    @A555 qingjiaorose,这是我见过脑洞最大的混写
    xieranmaya
        185
    xieranmaya  
       Mar 12, 2018
    干脆直接用汉语得了,反正 UTF8
    shijingshijing
        186
    shijingshijing  
       Mar 12, 2018
    @shakoon #86 今日最佳,你赢了,完胜全场~ 那些拼音首字母的,好歹可以猜。。。
    coffeedeveloper
        187
    coffeedeveloper  
       Mar 12, 2018
    很早呆的一个外包公司,接的一些外包项目,对接的甲方,很多专业名词都是难以翻译成英文,或者说你翻译的英文,别人比起拼音更难看懂,反而是说通过拼音缩写加良好的注释说明更能沟通。
    snw
        188
    snw  
       Mar 12, 2018 via Android
    @AlisaDestiny 然后
    天津和山西打了起来。
    重庆和河南打了起来。
    吉林和河北打了起来。
    江西和甘肃打了起来。
    inflationaaron
        189
    inflationaaron  
       Mar 12, 2018
    基本上没有人对于长串的拼音单词有记忆,所以都是要拼出字来才能理解。但是英文单词和汉字词汇一样因为看得多了,单词不用拼出来,直接看就可以知道意思,两者的阅读速度有很大的不同。实在是用英文无法表达的就直接写汉字比用拼音更易读。
    dianso
        190
    dianso  
       Mar 12, 2018 via iPhone
    还是拉丁文或者俄语好
    dingtian
        191
    dingtian  
       Mar 13, 2018
    @z1154505909 我在知乎看到 vs code 貌似找了专人 负责中文用户的反馈。。。因为 Google 翻译的英文 他们再翻一遍 就谁都不认识了。。。哈哈哈
    liyvhg
        192
    liyvhg  
       Mar 13, 2018 via Android
    我见过一些系统数据库字段用 A0、A1、A2,aa0,aa1、B0.....Z0 ,zz0 这样的
    codingKingKong
        193
    codingKingKong  
       Mar 13, 2018
    可以接受的范围, 最怕写缩写不加注释, 没有文档, 前后上下文关联性不强的旧项目, 猜都没地方猜.
    SoukNow
        194
    SoukNow  
       Mar 13, 2018
    @alamaya 我在银行 it 里做了三年,现在别的不说,拼音首字母拼写和猜测贼 6
    cysroad
        195
    cysroad  
       Mar 13, 2018
    你是没见过英语+拼音缩写的。
    卖出数量:sellsl
    买入数量:buysl
    mingyun
        196
    mingyun  
       Mar 26, 2018
    哪怕用百度翻译下也好,至少一看知道什么意思
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1458 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 295ms · UTC 16:52 · PVG 00:52 · LAX 09:52 · JFK 12:52
    ♥ Do have faith in what you're doing.