总则:不管你用什么命名方法,所有的命名规则一定要统一,不要一会儿中文拼音一会儿英文等等。
1、采用英文单词或英文短语(包括缩写)作为名称,不能使用无意义的字符或汉语拼音。
2、每个数据库对象表,视图,字段,存储过程,不要用任何数据库的关键词作为名称。凡是能写注释的地方,应该写上注释,以便查看。
3、名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。
4、对长度也要有限制,最好不要超过30个字符,在PD设置生成时,部分数据库对象会自动截取到30位。
5、所有名称的字符范围为:A-Z, a-z, 0-9 和_(下划线)。不允许使用其他字符作为名称。
6、注释分单行和双行,在数据库对象如函数,存储过程,视图等,都需要在页头添加注释,比如:
/* 功能描述:用户信息的登录验证
创建人:XX
创建日期:2010-5-5
修改备注1:按照日期,修改内容,人名
修改备注2:比如:2010-5-6 修改用户的角色问题 AJIN */
数据库对象 | 前缀 | 命名说明 |
表 | 写法一:模块名_具体功能实体名,如用户角色表User_Role等,
写法二:直接写成UserRole,不用"_"来区分,看习惯和所用数据库。 |
|
列名 | 表名缩写_ | 写法:表名缩写_具体内容
如用户角色表User_Role的名称:UR_Name, 如果是单个的表名,比如区域表Area,则可以写成Area_ID。 |
存储过程 | sp_
usp_ proc_ |
单个表直接用表名,并加功能,大小写均可(Add,Edit,Del,Query,Report,Validate等) |
视图 | vw_ | vw_直接的内容,一般是用于查询Query和报表Report两种情形 |
触发器 | trg_
trig_ |
方法一:trg_表名_方法名_[之前之后等]
比如:trg_User_Info_Insert 方法二: 触发器分为行级Row【R】和语句级Statement[【S】, 又分为after【A】,before【B】,instead of【I】, 方法又有三种Insert【I】,Update【U】,Detele【D】, 所以:如:trg_User_Info_RBI(代表语句级,之前,插入操作),有点专业,不知道命名规则的人看不明白。 |
函数 | fn_ f_ |
fn_功能名称。一些是具体的操作函数,比如字符串处理,fn_SplitStr(参数)处理字符串,如果与模块相关,则fn_模块名称_具体方法 |
主键 | pk_ | pk_表名[或缩写]_列名
简洁的写法: 写法一:pk_表名, 写法二:pk_列名,因为列名设计时已经包含表的含义 |
外键 | fk_ | fk_从表名字段_主表名字段。这个推荐 |
索引 | idx_ | idx_表名_字段名(一个或多个)【可以在其后加U或者C,规则同触犯器】
推荐使用:idx_字段名 一是唯一Unique【U】与非唯一NonUnique【N】 一是聚集Cluster【C】与非聚集NonCluster【N】 |
约束 | ck_ | 1. 默认约束:df_表名_列名,df_列名 |
2.唯一约束:uni_表名_列名,uni_列名 | ||
3.检查约束:【ck_列名】,【ck_表名_列名】 | ||
4.主键约束:【pk_表名】,【pk_列名】 | ||
5.外键约束:fk_表名_REFERENCE_表名 | ||
序列 | seq_ | 写法1:seq_User_Info(因为每个表一般只有一个序列)
写法2:seq_UI_ID (因为表名含义已经包含在字段中) 写法3:seq_User_Info_UI_ID(表名加字段名) |
事务 | trans_ | trans_ |
游标 | crs_ | crs_ |
表空间 | _data
_idx _tmp _rbs |
@面向用户或者应用名,这个以用户名或者应用名加后缀组成
数据表空间以用户名+_+data命名 索引表空间以用户名+_+idx命名 专用临时表空间以用户名+_+tmp命名 专用回滚段表空间以用户名+_+rbs 命名 特殊处理: |
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · mysql创建用户并赋予权限
- · docker定时任务Mysql脚本
- · docker安装mysql8注意事项
- · 定时备份docker中的mysql
- · docker-compose通过容器名连接mysql
- · unity3d mysql error: The given key was not present in the dictionary.
- · mysql服务性能优化—my.cnf配置说明详解(不同内存)
- · MySQL 批量修改数据表编码及字符集
- · Your database must use ‘READ-COMMITTED’ as the default isolation level.
- · MySQL-InnoDB存储引擎
- · 将数据从mysql迁移到clickhouse
- · docker安装Mysql5.7