命名与设计

原创 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的同学做表设计。

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

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

相关文章推荐

web标准化设计:常用的CSS命名规则

头:header   内容:content/container   尾:footer   导航:nav   侧栏:sidebar   栏目:column ...
  • e_wsq
  • e_wsq
  • 2012-05-23 16:51
  • 440

实战设计模式之命名模式

实战设计模式之命名模式...

WebUI设计命名规范

这套规范并非单纯的CSS、html或JavaScript命名规范,它涉及了很多使用PhotoShop这类设计工具进行网页设计过程中的命名规范 Web UI 设计命名规范 一.网站设计及基本...

php命名空间的设计思想和缺点

相比C#等语言,你可以在php函数里面随意定义变量并赋值,而不用担心覆盖了全局变量,或者类变量;你也可以随意的定义类变量,而不用担心会和函数名冲突,因为变量前面都有个$。php的命名空间和全局变量、局...

网页设计CSS等命名规范

CSS命名规则        头:header        内容:content/containe        尾:footer     ...

关于命名规范、维度明细层及集市汇总层设计的思考

在SN做仓库项目,根据自己负责的内容及SN的一些规范等,将这一阶段的模型工作进行一个思考和总结。 一、仓库字段、表等命名的规范 数据仓库建设目的,其中重要的一个方面就是建立统一的全局视图;表、字段...

Java学习笔记四。设计模式、基本数据类型、包装类、异常、断言、包、访问权限、命名规范、jar

设计模式: 工厂设计模式 代理设计模式 一共23种设计模式,用的一般比较多的就是工厂模式和代理模式。 一般写字符串比较的时候把常量或者字符串写在前面,如: String temp = “a”...

数据库设计规范(命名规范)

1 目的  规范数据库设计。  2 概述  从数据库的设计原则 设计文档几方面论述数据库设计的规范思想及命名规则。  3 数据库应用结构  根据对一般业务系统的分析,将数据库和程序系统统一进...

Web UI 设计命名规范

一.网站设计及基本框架结构: 1.    Container “container“ 就是将页面中的所有元素包在一起的部分,这部分还可以命名为: “wrapper“, “wrap“, “pag...

数据库设计及命名规范http://blog.csdn.net/zhang_xinxiu/article/details/8521673

这篇博客是对机房收费系统整个实现过程进行总结,主要分为三个阶段:第一,系统数据库的设计;第二,系统窗体的设计;第三,系统代码的编写。 一、系统数据库的设计     1、设计之初     在动...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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