### 数据库设计及使用规范详解 #### 一、命名原则 **1.1 PascalCasing命名方式** - **基本原则:** 所有的单词首字母大写,如`BankName`。 - **常用缩写规则:** - **三个字母以下全部大写**,例如:`SP`(Service Provider)、`PG`(Payment Gateway)。 - **三个字母以上首字母大写**,例如:`Xml`。 **1.2 表名和字段命名规则** - **表名要求:** - 使用英文单词或词组,禁止使用汉语拼音。 - 采用名词或名词短语。 - 不使用复数形式。 - 遵循Pascal命名规则。 - 尽量避免使用缩写。 - 避免与SQL关键字冲突。 - 不使用任何前缀(如`U`、`B`)。 - 不使用下划线。 - **示例:** - 正确命名:`User`、`SPService`、`Order`。 - 错误命名:`Users`、`User_Info`。 **1.3 存储过程命名规则** - **命名模式:** `up_xxx_StoredProcedureName`。 - `up`:表示用户定义的存储过程,以区别于系统预定义过程。 - `xxx`:子系统的三个字母缩写。 - `StoredProcedureName`:具体描述该存储过程的功能。 - **StoredProcedureName规范:** - 使用动词或动词短语,带宾语。 - 遵循Pascal命名规则。 - 尽量避免使用缩写。 - 避免与SQL关键字冲突。 - 不使用任何前缀(如`U`、`B`)。 - 内部不使用下划线。 - 操作依赖条件时,在末尾添加`By+条件`。 - **示例:** - 正确命名:`Up_Usr_InsertUser`、`Up_Usr_SearchUserByUserID`。 - 错误命名:`Up_usr_InsertUser`、`Up_Usr_Insert_User`。 - **子系统缩写示例:** | 序号 | 缩写 | 英文全称 | 中文名称 | | ---- | ---- | -------- | -------- | | 1 | usr | UserPortal | 用户自服务门户 | | 2 | Bap | Business Administration Portal | 业务管理门户 | | 3 | Spp | SPPortal | SP自服务门户 | | 4 | ifc | Interface | 接口子系统 | | 5 | Bil | Billing | 计费子系统 | | 6 | Stm | Settlement | 结算子系统 | | 7 | Sys | - | 各子系统共用 | | 8 | Acc | Account | 账务管理 | **1.4 视图命名规则** - **基本格式:** `vwViewName`。 - `vw`:视图的前缀。 - `ViewName`:视图的含义。 - **ViewName规范:** - 使用名词或名词短语。 - 不使用复数形式。 - 遵循Pascal命名规则。 - 尽量避免使用缩写。 - 避免与SQL关键字冲突。 - 不使用任何前缀(如`U`、`B`)。 - 在`ViewName`内部允许使用下划线。 - **示例:** - 正确命名:`vwUserView`、`vwUserOrderView`。 - 错误命名:`vw_User_Order_View`。 #### 二、设计规范 **2.1 数据表设计规范** - **第三范式(3NF)要求:** - 表中的每个值只出现一次。 - 每一行都有唯一标识(即主键)。 - 表中不应存储非键列依赖于其他键的信息。 - **字段规范:** - 主键字段用于唯一标识每条记录。 - 金额字段使用`Money`类型。 - 时间字段使用`DateTime`类型。 - 枚举字段使用`Varchar(2)`或`Varchar(4)`,并提供具体的取值含义,例如:`00`, `01`, `0000`, `0001`。 - `ID`结尾的字段仅由数字组成,`Code`结尾的字段由字母或数字组成。 #### 三、使用规范 **3.1 综合规范** - **数据库结构变更:** - 只有数据库管理员有权进行数据库结构的修改。 - 开发人员若需修改数据库结构,需提交变更申请,并由数据库管理员审核后实施。 - **数据访问方式:** - 必须通过存储过程访问数据库,禁止直接使用DML语句。 - 特殊情况需经过数据库管理员审批。 - **存储过程设计建议:** - 尽量将复杂的存储过程拆分为多个单一功能的过程。 - **索引管理:** - 若需新增索引,必须提交书面申请,明确索引的定义及其必要性。 - 索引由数据库管理员统一管理。 - **初始数据提交:** - 数据库的初始数据(包括代码表和配置表)需提交给数据库管理员。 - **触发器使用限制:** - 禁止使用触发器。 - **事务控制:** - 所有涉及数据库数据更改的操作(如插入、删除、更新)均需通过事务进行控制。
- 粉丝: 4
- 资源: 31
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Arduino和Python的实时歌曲信息液晶显示屏展示系统.zip
- (源码)基于C++和C混合模式的操作系统开发项目.zip
- (源码)基于Arduino的全球天气监控系统.zip
- OpenCVForUnity2.6.0.unitypackage
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件