首页 > 数据库 >数据库对象命名规范

数据库对象命名规范

时间:2023-11-17 10:01:40浏览次数:32  
标签:前缀 数据库 规则 规范 Prefixes 使用 命名 比如 Id

 

 译自:http://weblogs.asp.net/jamauss/articles/DatabaseNamingConventions.aspx

 

通用规则:

命名长度不超过30个字符

使用字母和下划线 (避免使用数字)

尽量少用下划线.

以字母开头. (不要以下划线开头)

避免简写 (减少歧义或误解)

避免缩写 (缩写可能造成多义性 比如

见名知意

避免使用空格.

 

1. 表 

规则 1a (Plural Names) – 复数形式。使用 "Customers" ,不用 "Customer". 比如:"UserRoles" "UserRoleSettings".

规则 1b (Prefixes) – 不要使用前缀 "tbl" or "TBL_" 。有时可用前缀对表进行分组.例如, "HcPayClients" ,不要使用"PayHcClients".

规则 1c (Notation) -  使用 Pascal Case 命名方式. 这样可以与SQL关键词区分开, "SELECT CustomerId_Pk, CustomerName FROM MyAppGroupTable"

规则 1d (Special Characters) – 不要使用任何特殊字符.

规则 1e (Abbreviations) – 尽量不要使用缩写和简写.

规则 1f (Junction a.k.a Intersection Tables) – 关联表,比如 "Doctors" 和 "Patients" 有多对多的关系,取名为“DoctorsPatients".

 

2. 列 - (incl. PRIMARY, FOREIGN, AND COMPOSITE KEYS)

使用 Pascal Case 命名方式.  

规则 2a (Identity Primary Key Fields) – 主键列使用 “Id“ 比如   "Customers JOIN Orders ON Customer.Id = Orders.CustomerId“

规则 2b (Foreign Key Fields) –比如主表有主键为 "Id". 在外键表中取名 "CustomerId".  比如:

规则 2c (Composite Keys) – 多个列组成主键. 比如 “ModuleId“ 和 “CodeId“ 组成主键.

规则 2d (Prefixes) –不要使用前缀

规则 2e (Data Type Specific Naming) – Boolean类型字段应取名为 "IsDeleted", "HasPermission", or "IsValid". 日期时间类型字段应包含 "Date" or "Time" ,数量单位字段,比如

 

3. 索引

规则 3a (Naming Convention) – 命名格式   {TableName}{ColumnsIndexed}{U/N}{C/N} "U/N" 表示唯一或非唯一索引 and "C/N" 表示族和非族. 比如. "ProductsIdUC".  “OrderDetailsOrderIdCustomerIdNN".


规则 3b (Prefixes and Suffixes) – 避免使用前缀

 

4. 约束

格式如下:     {constraint type}{table name}_{field name}

      比如:

      1. PkProducts_Id - primary key constraint on the Id field of the Products table

    - foreign key constraint on the ProductId field in the Orders table

      3. CkCustomers_AccountRepId - check constraint on the AccountRepId field in the Customers table

前缀如下

     Primary Key: Pk

     Foreign Key: Fk

     Check: Ck

     Unique: Un

 

5. 视图

规则 5a (Prefixes) – 使用前缀 "Vw" or "View" ,不使用

规则 5b (View Types) -. 连接表 "Customers" 和 "StatesAndProvinces"的视图取名为

 

6. 存储过程 

规则 6a (Prefixes or Suffixes) – 使用CRUD 分组, 使用前缀 "Create", "Get", "Update" or "Delete". 比如

或者,使用表分组,添加 "Create, Get, Update, or Delete" 后缀. 比如, "ProductInfoCreate" or "OrdersCreate".

其他验证或操作,使用动词和名词结合的方式,比如, "ValidateLogin"

规则 6b (Grouping Prefixes) – 可以使用前对对SP进行分组,比如 "Prl"—Payroll,

规则 6c (Bad Prefixes) – 不要使用前缀

 

7. 触发器

规则 7a (Prefixes and Suffixes) – 使用 "Trg" 做前缀或者后缀. 比如: Trg_ProductsIns, ProductsInsTrg, Products_InsTrg, or InsProducts_Trg. 要包含表名, 以及触发器的操作

规则 7b (Multiple Operations) – 如果一个触发器有多个操作 (both INSERT and UPDATE for example) 要包含多个操作比如, "Products_InsUpdTrg" or "TrgProducts_UpdDel"

 

download: template_sqlserver_naming_guideline.rar 


标签:前缀,数据库,规则,规范,Prefixes,使用,命名,比如,Id
From: https://blog.51cto.com/emanlee/8436780

相关文章

  • 数据库大事记
    数据库分类分类方法为:按数据模型分类、按业务类型分类、按部署方式分类、按存储介质分类。按数据模型分类按业务类型分类按部署方式分类按存储介质分类喜欢点赞收藏转发,下期再见。......
  • 非结构化数据库的典型实例
    列举下列非结构化数据库的典型实例。键值数据库存储数据库——()列存储数据库——()文档型数据库——()图形数据库——()键值数据库是一种基于键值对存储的数据库,它将数据以键值对的形式进行存储和检索。以下是一些常见的键值数据库的典型实例:1.Redis:Redis是一个开源的内存键值数......
  • MySQL数据库高并发优化配置
    在Apache,PHP,mysql的体系架构中,MySQL对于性能的影响最大,也是关键的核心部分。对于Discuz!论坛程序也是如此,MySQL的设置是否合理优化,直接影响到论坛的速度和承载量!同时,MySQL也是优化难度最大的一个部分,不但需要理解一些MySQL专业知识,同时还需要长时间的观察统计并且根据经验进......
  • mybatisplus关于驼峰命名法与下划线的映射
    今天遇到一个很坑的事情,我在测试之前的案例的时候我有一个字段的名字是typeId,我调试之后发现插入出现了错误。开启sql日志之后我发现mybatisplus自动把我的typeId改成type_id了。无奈之下我只能把数据库、实体类的驼峰命名法改成下划线###SQL:SELECTid,name,description,t......
  • openGauss学习笔记-125 openGauss 数据库管理-设置账本数据库-校验账本数据一致性
    openGauss学习笔记-125openGauss数据库管理-设置账本数据库-校验账本数据一致性125.1前提条件数据库正常运行,并且对防篡改数据库执行了一系列增、删、改等操作,保证在查询时段内有账本操作记录结果产生。125.2背景信息账本数据库校验功能目前提供两种校验接口,分别为:ledger......
  • C#使用SqlSugar操作MySQL数据库实现简单的增删改查
    ......
  • python语言合法命名规则:my_first_python_program
    示例示例Python语言合法命名规则:命名只能使用字母、数字和下划线,不能使用其他符号;Python语言合法命名规则:1.命名只能使用字母、数字和下划线,不能使用其他符号;2.不能以数字开头;3.不能使用Python关键字;4.命名应该有意义,尽量不要使用缩写;5.命名应该具有可读性,尽量使用驼峰命名法,......
  • Navicat设置MySQL某用户只可访问特定数据库或表
    概述项目中需要将数据库中某些表对其他系统开放,故需设置数据库的访问权限,使得某用户只能访问指定的表。MySQL提供了相关的SQL语句,但本次使用Navicat以可视化方式进行配置。方法1、新建用户2、设置权限(1)服务器权限全不勾选(2)权限权限用于设置该用户可操作哪些数据库或表,且可设置操作......
  • Oracle数据库日常巡检指令
    Oracle数据库的日常巡检内容包括:(1)Oracle数据库基本状况检查;(2)Oracle相关资源的使用情况检查;(3)Oracle数据库性能检查;(4)数据库服务器cpu、mem和I/O性能检查;(5)数据库服务器安全性及其他事项检查。需要指出的是这些巡检指令不仅在巡检过程中用得上,某些故障的诊断场景中同样可以利用,还是比较......
  • 去除:Vue项目打包后生成的.map文件&文件hash值命名
    在vue.config.js文件中设置productionSourceMap和filenameHashing项为false即可。//vue.config.js文件module.exports={outputDir:'dist',assetsDir:'assets',publicPath:'./',//需注意是相对路径,不然dist打包访问后就会出现空白问题。productionSourceMap......