一,总结以前数据库设计的问题
1.I SBN,
类型问题:
时间是varchar2,给操作带来不变,应设为date.
数字也是用varchar2,这给统计带来了不方便。
没有使用序列,存在并发的问题的可能。
状态表,还不够完善,如"newbook","reprint",没有放在状态表中。
存在一个数据字段有不同的数据名,如审计单位的ID,有managerid,manageid两种情况,给编码带来不方便。
*数据访问时,有的sql语句不太优化,操作效率有得提高。这个是自己的体会,也许不太准确。
1.2 GHRX,
类型问题:
数字也有用varchar的,如数量,就有的表中是用varcher,给统计带来了不方便。
同一个意思的数据字段在不同的表中的类型长度不一致,有的20,50,100;这给后面做维护带来不便。
存在一个数据字段有不同的数据名
二,以后数据库设计规范
1.数据类型
字符类型严格字符型;
日期类型严格日期类型;
数值类型用数字型,特殊情况特殊处理。

2.数据字段长度和命名
同一意义的字段在所有数据表中长度一样长,命名一样。
数据长度可以在满足需求的情况再放宽一些。
如学生名称字段,类型varchar2(20),应该可以满足需求,这里可以适当加宽varchar2(50).这样可以防止,以后来一个外国学生,他的名字就会超过20个字符。
但要名字要起过50字符的应该就不会有了,有了就简写。
3. 建辅助表
根据需要建一些辅助性的表。不在业务中使用,只是便于编程和操作。
如图书状态表,图书的状态多;图书类型表,图书的类型多。
4.建表命令规则
4.1 表名和字段名
表名以“t_b_”开头,后面根据表的作用起来,采用驼峰的命令方式。
如建一张记录订单明细的表,表:t_b_orderItem,这里item的第一个字母要大写。
数据表的字段,根据字段意义取名,采用驼峰的命令方式。
如明细编号,取名:itemId,明细名称:itemName
说明:
请参考以下:
数据表命名时对数据表分类的考虑 
业务数据表:t_d_<系统标识>_<表标识>。如销售系统的合同表 t_d_SH_Contract 或 t_d_SH_合同;
基本编码表:t_b_[<系统标识>]_<表标识>。如客户编码表t_b_Customer 或 t_b_客户;
辅助编码表:t_a_[<系统标识>]_<表标识>。如合同类别t_a_ContType 或 t_a_合同类别;
系统信息表:t_s_[<系统标识>]_<表标识>。如用户表t_s_User 或 t_s_用户;
累计数据表:t_t_<系统标识>_<表标识>。如当前库存表t_t_SO_Stock 或 t_t_SO_库存;
结算数据表:t_c_<系统标识>_<表标识>。如库存月结表t_c_SO_StockMonth 或 t_c_SO_库存月结;
决策数据表:t_w_<系统标识>_<表标识>。如月销售统计表t_w_SH_SellMonth 或 t_w_SH_月销售统计;
注:[]内的内容表示可选。如“t_s_[<系统标识>]_<表标识>”表示t_s_SH_User 和 t_s_User 都是符合规则的。
业务数据表 
设有‘录入人’和‘录入日期’列,由系统自动记录。 
记录单据的表中设置“自动单据号”,由两个字符开始以区分单据类型,后跟一数字序列表示序号;自动单据号’由系统自动生成,作为主表的主键,不允许用户修改。
当有对应的纸质单据时,设置“单据号”用于记录纸质单据的单据号。
4.2 视图 
v_<视图类型>_[<系统标识>]_<视图标识>。视图类型参见《表的分类》。
4.3 存储过程 
p_[<系统标识>]_<存储过程标识> 
4.4 函数  
f_[<系统标识>]_<函数标识> 
4.5 触发器 
tr_<表名>_<i,u,d的任意组合> 
ti_<表名>_<i,u,d的任意组合> 
4.6 自定义数据类型  
ud_<自定义数据类型标识>_<数据类型>
4.7 Default 
df_<Default标识>
4.8 Rule
ru_<Rule标识> 
4.9 主键  
pk_<表名>_<主键标识> 
4.10 外键
fk_<表名>_<主表名>_<外键标识>
注:[]内的内容表示可选。如“p_[<系统标识>]_<表标识>”表示p_s_addUser 和p_addUser
5.命令规则应该注意事项
(1) 以上命名都不得超过30个字符的系统限制。变量名的长度限制为29(不包括标识字符@)。
(2) 数据对象、变量的命名都采用英文字符,禁止使用中文命名。绝对不要在对象名的字符之间留空格。
(3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突
(4) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性。
假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了。
(5) 缩写规则:较短的单词可通过去掉“元音”形成缩写;
较长的单词可取单词的头几个字母形成缩写;一些单词有大家公认的缩写。
6.为每张表建序列
序列只是流水号,用来区分每条记录,没有其他意义。
如一个表中主键有两个字段,可以另外加一个流水号,以流水为主键,原打算作主键的两个字段不作主键,但保留在表中。
7.建立必要的索引
建索引会影响操作(添加,修改)的效率。
对查询比较多而操作相对少的,就应该在其查询条件中用的较多的字段上建立索引,提高查询效率。
*8.每张表中是否加备用字段的问题
三,数据库管理
1. 修改表的方式
各表建好,以后作修改都要写先说明,团队里大家同意 ,后修改。因为很多操作是相互影响的。
2. 修改数据库脚本的方式
对一些数据库脚本的修改,参考下面存储过程设计规范的操作方式,作相关说明。
3. 存储过程设计规范
在存储过程中必须说明以下内容:
目的:说明此存储过程的作用。
作者:首次创建此存贮过程的人的姓名。在此请使用中文全名,不允许使用英文简称。
创建日期:创建存储过程时的日期。
修改记录:
修改记录需包含修改顺序号、修改者、修改日期、修改原因,修改时不能直接在原来的代码上修改,也不能删除原来的代码,只能先将原来的代码注释掉,再重新增加正确的代码。修改顺序号的形式为:log1,log2,log3。。。,根据修改次数顺序增加,同时在注释掉的原来的代码块和新增的正确代码块前后注明修改顺序号。
对存储过程各参数及变量的中文注解。
示例如下:
/*
目的:根据部门与物料和会计区间查询生产现场领料汇总报表
作者:李奇
创建日期:2008-12-11
*/
/*
修改顺序号:log1
修改者:刘敏
修改日期:2008.12.22
修改原因:(具体原因详细描述)
*/
CREATE PROCEDURE [dbo].[USP_GetLMSSum]
@ProductionType int=1,--生产类型(1-自制;0-委外加工)
@DeptID int=0,--生产部门
@ItemID int=0,--物料
@StartDate datetime='2002-11-26',--会计区间开始日期
@EndDate datetime='2002-12-25'--会计区间截止日期
AS
/*
log1 old
--自制领料
INSERT INTO #LMSDts
SELECT dbo.iStockBill.DeptID, dbo.fDept.DeptName,
dbo.mLMS.ItemID AS ItemInterID, dbo.fItem.ItemID, dbo.fItem.ItemName,
ISNULL(dbo.fItem.Model, N'') AS Model, ISNULL(dbo.fUnit.UnitName, N'')
AS UnitName, dbo.mLMS.Qty, dbo.mLMS.TransType, dbo.mWO.OrderType,
dbo.mLMS.CreateTime
end log1 old
*/
--log1 new
--自制领料
INSERT INTO #LMSDts
SELECT dbo.iStockBill.DeptID, dbo.fDept.DeptName,
dbo.mLMS.ItemID AS ItemInterID, dbo.fItem.ItemID, dbo.fItem.ItemName,
ISNULL(dbo.fItem.Model, N'') AS Model, ISNULL(dbo.fUnit.UnitName, N'')
AS UnitName, dbo.mLMS.Qty, dbo.mLMS.TransType, dbo.mWO.OrderType,
dbo.mLMS.CreateTime
--end log1 new
说明:
有些部分是自己实际项目开发中的体会,有的是参考网络上的资料,总结出来的,相互学习,大家共享。
本文出自 “在路上” 博客,请务必保留此出处http://yuwenhu.blog.51cto.com/672091/136285

转载于:https://blog.51cto.com/1327236/505002

数据库设计和管理规范相关推荐

  1. 数据库设计方法、规范与技巧(推荐)

    数据库设计方法.规范与技巧(推荐) 一.数据库设计过程 数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户 ...

  2. 数据库设计、查询规范及常用SQL语句

    1.数据库设计规范 1.1 表设计 (1)表名前应加上前缀,表的前缀用系统或模块的英文名称缩写: (2)数据库表名应该有意义,表名太长需要用前缀表示,并且易于理解,最好使用可以表达功能的英文单词或缩写 ...

  3. oracle报错数据复数,Oracle数据库设计策略及规范

    Oracle数据库设计策略及规范 设计策略及规范 1. 目的 定义Oracle数据库设计规范,作为数据库规划.设计.开发以及维护人员的技术参考资料.用以规范和指导相关人员的设计行为. 2. 概述 本文 ...

  4. 数据库设计方法、规范与技巧

    本文链接: http://www.openphp.cn/index.php/art.../100/index.html 一.数据库设计过程 数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个 ...

  5. 数据库设计方法与规范 数据库设计过程

    数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求. 数据库设计中需求分析阶段综合各个用 ...

  6. 数据库设计的范式规范

    关系型数据库的设计遵循六大范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).巴斯-科德范式(BCNF).第四范式(4NF)和第五范式(5NF,又称完美范式). 第一范式 1NF 1NF ...

  7. mysql统计记录数据库设计_MYSQL数据库设计,查询规范

    MySQL数据库 (一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是 ...

  8. 数据库设计中的命名规范

    1.引言 数据库设计过程中表.字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理性.为了项目最终的协调稳定性,而命名规范则更多的是为了确保设计的正式和统一.公正的讲, ...

  9. mysql 数据库设计说明书_1.2 Mysql 数据库规范

    ## 1.数据库版本 1. mysql 5.6以上 ## 2.数据库排序规则 1. utf_general_ci ## 3. 命名规则 **_一律使用小写字母+数字_** 1.数据库命名规范 数据库, ...

最新文章

  1. .net下WinDbg使用说明
  2. 【jsp】通过get和post传值的区别
  3. 【 Linux 】Vim 使用的第一个阶段(满足基本的写代码需求)
  4. mounty不可重新挂载因为先前没有完全卸载_【译】React Hooks测试完全指南
  5. React的组件中的传值,及context上下文的使用
  6. 打开aspx现有实例
  7. ecshop清除mysql缓存_禁用ecshop缓存,关闭ecshop缓存功能
  8. windows系统tomcat日志输出至catalina.out配置说明
  9. python代码书写_Python代码的优雅写法,让代码更简洁
  10. 2018年Java展望
  11. 校招刷题---java选择题笔记04
  12. ASP.NET 备忘
  13. 鸡兔同笼(C语言实现)
  14. 2021/06/20 1+X 大数据应用开发(Java)中级实操考试
  15. 微信小程序怎么开店?怎么开一个小程序店铺
  16. ps如何调出参考线?
  17. 机器学习 集成学习的结合策略之stacking学习法
  18. 千兆网线 双机互联交叉线
  19. 转 适合wince初学者的一些 知识
  20. ASP.NET Core 中文文档 第四章 MVC(3.7 )局部视图(partial)

热门文章

  1. Core Animation1-简介
  2. android afinal 图片,android中使用afinal一行代码显示网络图片
  3. 红帽linux配置网桥#039;,redhat配置网桥
  4. Mysql aborted_client_MySQL之aborted connections和aborted clients
  5. pytorch统计矩阵非0的个数_PyTorch常见的12坑
  6. python+requests+unittest+excel_接口自动化测试 unittest+request+excel(踩‘坑’)
  7. PHP脚本执行超时的解决办法
  8. linux复制压缩文件,Linux如何复制,打包,压缩文件
  9. 地图旋转_折纸效果三维旋转,不一样的地图页设计
  10. uplay服务器未响应,《看门狗:军团》存在崩溃丢失存档BUG 育碧正在修复