Jak*_*ade 2 database-design naming-conventions prefix
我已经用数据库开发解决方案超过11年了,似乎我已经"开发"关于在我的表中命名列的一个相当有争议的意见:我总是给它们一个3或4个字符类型的前缀,即intGroupID, nvcTitle,dtmCreated,bitPlayerHater等.我和其他几位开发人员一起工作,他们都绝对鄙视老派的前缀约定.
(是的,我知道,我在这里没有发明任何东西,我只是拒绝放弃:)
我的主要原因是当他们试图了解数据结构时,尽可能多地向我的开发人员提供信息.立即了解列的类型可以为您(或至少我)提供一个更好的心理形象,让您了解所处理的内容.与C#或VB.NET相比,在编写查询时,通常不会从IDE获得相同的智能感知支持.
到目前为止,没有人能够提出可以改变我对这一特定主题的看法的杀手论点.我还有其他几个同样有争议的命名约定,它们提高了清晰度,但列前缀似乎让更多的人感到沮丧.
为什么前缀数据库列被认为是一种不好的做法?
S.L*_*ott 11
它被称为" 匈牙利表示法 ".
作为开发人员(和数据架构师),我发现它毫无价值.它没有提供太多信息.
它只对部分类型信息提供快速,不准确的光泽.例如,它省略了长度.
在更复杂的数据库环境中,对象是BLOB,它根本不提供有关blob中对象类型的信息.
它使更改数据类型变得痛苦.
有必要记住一个模糊的前缀.是吗vcName,strName还是uniName?
SQL自动处理类型转换,使得特定于类型的特定命名在很大程度上无关紧要.
最重要的是:它没有提供有关数据含义的有用文档.我的经验是人们几乎总是腐败这个意思.他们很少(如果曾经)对它是int还是string感到困惑; 当他们想知道时,他们只是使用TOAD或其他提供ACTUAL类型的工具来描述表格,而不是预期类型的部分摘要.
[说过它几乎没用,我意识到这可能不是你想要的"杀手锏".如果您能够逐点地用实际原因更新您的问题会有所帮助,您认为这是匈牙利表示法的价值,因此可以逐点解决这些问题.