数据库命名约定 - 前缀

时间:2012-05-10 08:32:27

标签: database-design naming-conventions

我知道针对此问题存在很多问题。 虽然有很多很好的命名惯例建议,但我们在团队中进行了辩论。

团队成员坚持认为我们应该将我们的表命名为:sProducts 和那样的主键:ProductGuid

他的系统中有两个前缀(s,h)所以s代表静态和h - 抱歉我真的不知道。我完全看不到那里的逻辑。他说每个大的oracle和ibm系统都是这样的。我从未使用过oracle或ibm系统,所以是否有添加s和h等前缀的约定?他们代表什么?

有人在那里,谁做同样的事情?我很抱歉这个问题 - 但我不想总是添加s而且不知道为什么......

2 个答案:

答案 0 :(得分:3)

  

他说每个大的oracle和ibm系统都是这样工作的。

这是一个非常大胆的声明。赔率是他的错,我会说,即使我对数据库一无所知。 (我是800多家公司的顾问。我从未见过这个。)

编码今天对表名的信念会给明天带来问题。表格成为视图,视图成为表格,视图成为表值函数,静态表格成为明天的“h-word”,这种情况并不少见。

当静态表最终成为h-word时,你对表做什么?别名了吗?现在,每当你需要找到那张桌子时,你必须更加努力。将名称更改为h-word?现在你已经打破了所有依赖它的静态应用程序。更改名称并使用旧名称创建可更新视图?看起来好像很多工作都可以通过一个好名字来避免。

答案 1 :(得分:2)

我对你的问题的陈述感到困惑。你提到“后缀”,但你显示“前缀。”

这里有许多宗教问题......

我在字段/列/属性的上下文中提出这个问题。其他类型的东西也需要有一致的形式。

许多命名约定的根源 - 与命名标准不同 - 是IBM 20世纪70年代的“OF语言”。

OF使用PRIME-MODIFIER-CLASS格式,为客户帐号生成CUST-ACCT-NO。

一个好名字希望完成几项任务......指出它是什么类型的数据(例如日期或文本)以及它对业务的影响。

CLASS字(后缀,但匈牙利表示法中的前缀)将是今天的数据类型之类的简短列表。日期,文本,代码,标志(今日二进制),金额和&等等。

CLASS单词不应超过十二个。

PRIME / MODIFIER字样将更加关注系统支持的业务问题。

无论如何......最难的部分是保持一致。

BIG no no将CODE缩写为CD和CDE。

分隔符问题,如破折号( - ),下划线(_),camelCase由技术环境&不值得讨论。

在任何这些问题中,最重要的问题是一致性......人类可怕的东西。

没有正确的命名约定。如果你梦想的事情太复杂而别人不能理解,那么你做出了错误的选择。

顺便说一句......命名惯例是我们主要处理的......一个模糊的想法,幸运的是写在一本尘土飞扬,被遗忘的手册中。

命名标准是自动实施的,与编译器相同。

我已经开发了一个具有出色命名约定的大型系统(由DBA强制执行)......能够浏览数据元素或段落名称&amp ;;知道什么是最自由的。