命名与设计

原创 2016年08月29日 09:47:34

前言

几乎所有的程序语言,都会告诉你某种形式的命名方法,比如八十年代早期的匈牙利表示法(猪一样的命名方法,不推荐),到后来linux推荐的小写和下划线的表示法等等。在我们迷失在这些五花八门的表示法之前,我给大家一个当头棒:别沉迷在这些表示法里头去了!你知道名字是用来干什么的吗?你起的这些名字,有没有帮助你实现你的目的?

这就是这篇文章的第一个目的:让我们从花里胡哨的命名方法,回到名字的目的的源头:改善对程序的理解和阅读中去。

这篇文章的第二个目的,是在我看到程序代码普遍存在的这个现象之后思考的:我们大多数同学,在写程序的时候,尤其java程序,会非常注意命名的规范、合理,对程序里头的数据结构和成员变量,都有不错的命名,可是一到了数据库、表、字段的命名的时候,就好像中了邪一样,乱七八糟,不知所云。完全忘记了数据库本身实际上是整个业务中最核心的数据结构的处理软件。

所以本文的第二个目的是提醒大家:数据库是应用软件的真实数据结构的基础容器,数据库、表、字段设计和程序中的数据结构设计具有同等甚至更加关键的重要程度。

名字的目的

总结一下,计算机里头的名字的目的是:

  1. 让人便于记忆某个事物
  2. 给事物赋予一定的定义

也就是说,好的名字应该是看到就知道是做什么的。

数据库表设计就是你的核心数据结构设计

很多同学思维里头并不认为数据库表设计实质上就是数据结构的设计,看到这个现象的时候,我会很惊讶。很多同学对数据库的认识,依然停留在一个数据永久保存的层面上,我在这篇文章里要大大声的吼叫一嘴:同学!你错了!数据库表的设计,就是你的应用软件的核心数据结构设计啊!

我的命名原则

言简意赅,表达准意思为主
像语言那样,充分利用数据库的完整的环境,做好库、表的名字空间管理
尽量避免使用关键字或者保留字
尽量用简单的词语
奥卡姆剃刀原则——意思就是去掉没啥用的花哨完页
保持一致的习惯
必要的时候去掉元音用辅音

名字空间

和许多编程语言一样,数据库/sql语言也具备名字空间的概念,名字空间是什么呢?简单说,名字空间就是一个名字的可见范围,这样我们就可以有效地对付重名问题。程序会和现实社会一样,名字也可能会重复。这个时候,名字空间就可以帮助我们区分究竟指的是哪个人。
在计算机世界里头,比较古老的名字空间是我们的目录路径。这个想必大家都很熟悉了。另外一个例子是java的CLASSPATH,实际上,仅仅从PATH这个关键字样就可以看出它是一个名字空间。

事实是:在计算机命名范畴里,所有叫 PATH 的东西,基本上都是某种形式的名字空间。我们可以利用全路径(全称)的办法,来唯一的指明某个可能重名的名字。

和编程语言的关系

我拿java举例,java里头,有包(package)、类(class)、方法(function)等名字空间,数据库里头其实也有对应的名字空间:数据库(这个在java里头没有对应的)、模式(schema)这个对应java的package、表(table)对应java的类、函数和java的方法对应。然后呢,成员变量对应的是字段。

这样写出来,希望能帮助java的同学做表设计。

注:以上文章源自敬爱的何老师(何伟平

版权声明:本文为博主原创文章,未经博主允许不得转载。

MYSQL数据库命名与设计

你是否对获得MYSQL数据库命名与其设计规范 的实际操作感到十分头疼?如果是这样子的话,以下的文章将会给你相应的解决方案,以下的文章主要是介绍获得MYSQL数据库命名与其设计规范 的方案,以下就是相关...

.NET设计规范————命名规范

NET设计规范:约定、惯用法与模式前言:         最近在看《.NET设计规范:约定、管用法与模式》一书,主要还是讲.NET的设计规范,以前对这一块也不是特别在意,最近想要把这些系统的学习一下,...

SQL数据库设计规范参考之数据库对象命名详细文档

对于一个大项目来讲,数据库的设计命名规范是很重要的一个环节,好的表设计,让人看得很舒服,一看就明白是什么意思了,下面看到一篇很不错的数据库对象命名参考文档,所以整理分享给大家。 引言 编码规范...

.NET设计规范(二) 命名规范

本文的主要结构为:(1)通用命名的约定(2)程序集和DLL的命名(3)命名空间的命名(4)类、结构和接口的命名(5)下一篇规范计划一.通用命名的约定【2.2】通用命名的约定【2.2.1】单词的选择1....

MYSQL数据库命名及设计规范

1.命名规范 (1)库名、表名、字段名必须使用小写字母,并采用下划线分割 (2)库名、表名、字段名禁止超过32个字符,须见名之意,建议使用名词不是动词 (3)库名、表名、字段名禁止使用MySQL...

路由&模块化设计&命名空间

ThinkPHP采用模块化的架构思想,可以支持多模块应用的创建,让应用的扩展更加方便. 先简单说下路由规则:什么是路由?系统从url参数中分析当前请求的分组(平台),控制器和操作方法的过程就是路由....
  • Zoe_sj
  • Zoe_sj
  • 2017年02月09日 09:26
  • 343

编程中的命名设计那点事(转)

在我开始设计系统的时候,我会花去很多时间去设计命名,因为好的命名和好的设计是分不开的。 In the beginning was the Word, and the Word was with ...

数据库技术-数据库命名与设计规范

数据库技术-数据库命名与设计规范     数据库开发历史上一直使用一个有点神秘的系统命名数据库表和字段。最初的数据库管理系统(DBMS ) ,这些命名方案的限制的结果已成为惯例和传统。然而,随着数...

Web设计之CSS命名规范详解

web设计之CSS命名规范: 1.1 公共部分和经常要用到的样式 整个容器:container 外围整体布局: wrap 页头部分:head/header/top 内容:...

怎样设计数据库之命名规范

一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键。如果把企业的数据比做...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:命名与设计
举报原因:
原因补充:

(最多只允许输入30个字)