数据库设计及命名规范http://blog.csdn.net/zhang_xinxiu/article/details/8521673
来源:互联网 发布:学编程的app 编辑:程序博客网 时间:2024/04/29 10:18
这篇博客是对机房收费系统整个实现过程进行总结,主要分为三个阶段:第一,系统数据库的设计;第二,系统窗体的设计;第三,系统代码的编写。
一、系统数据库的设计
1、设计之初
在动手设计前,要做的就是对系统的熟悉。大概用了不到一周的时间,分别从系统的结构和各模块功能进行了整体的分析,并利用导图软件画出了下面的系统结构图。
第一阶段的分析为后面的设计提供了很大的便利,有了对系统整体的把握于是可以安心的进行下步动手开始设计。
2、设计中
在进行设计时,借鉴了一些数据库设计的资料,对数据库表的命名规范进行了进一个步的学习,保证高效、便利的查询到表中想要的结果集。数据库中表名、报表名和查询名的命名是很重要的一个细节,直接影响了以后对数据库数据查询的高效性。但只对数据库表的每个字段进行命名是远远不够的,在设计时还要考虑每个字段的数据类型和保证数据完整性。
●表名、报表名和查询名的命名规范
编码规范是一个优秀程序员必备的素质,它包括变量、方法、类的命名,数据库中表、字段、对象的命名及数据类型等等很多方面。在此只总结数据库中类型的命名规范,为以后高效的编写查询记录打下基础。
表1 数据类型规范表
描述类型
说明
Oracle
SQL Server
Access
int
整型
Integer
int
number
number(a,b)
带小数点数字
numeric
numeric
number
char(n)
定长字符串
char
char
text
varchar(n)
变长字符串
varchar2
varchar
text
date
日期/时间
DateTime
datetime
date/time
binary(n)
二进制内容
long raw
image
OLE Object
注:原则上只使用这6种基本类型,不推荐使用Bool类型,请用int代替。在进行编写程序代码时,程序中的变量类型一定要高于数据库中相应变量的类型,避免使数据类型在进行转换时丢失数据。
表2其他数据库对象命名规范
对象名
前缀
范例
表(table)
tbl_/t_(或不加前缀)
userinfo/t_user_info/tbl_user_info
视图(view)
v_/v
v_user_info/vuserinfo
序列(sequence)
seq_
seq_user_info
簇(cluster)
c_
c_user_info
触发器(trigger)
trg_
trg_user_info
存储过程(procedure)
sp_/p_
sp_user_info/p_user_info
函数(function)
f_/fn_
fn_user_info/f_user_info
物化视图(materialized view)
mv_
mv_user_info
包和包体(package & package body)
pkg_
pkg_user_info
类和类体(type & type body)
typ_
typ_user_info
主键(primary key)
pk_
pk_user_info
外键(foreign key)
fk_
fk_user_info_fieldname
唯一索引(unique index)
uk_
uk_user_info_fieldname
普通索引(normal index)
idx_
idx_user_info_fieldname
位图索引(bitmap index)
bk_
bk_user_info_fieldname
同义词(synonym)
依据所分配的表所属模块/模式
数据库链接(database link)
无特殊要求
3、总结
问题:
①数据库结构设计;
②各对象命名;
③数据类型定义;
解决办法:
①:没有做好,结构的设计很大部分参考了以前的数据库结构;
②:做的一般,查阅各资料对表名和字段名进行整齐的命名,提高了查询效率;
③:做的一般,大多用varchar类型,少数使用bigint类型,后期编写时也进行类型的更改;
如何更好:
①:在设计时要对系统更进一步的进行分析,画出系统功能图和结构流程图;
②:相同类型的对象统一命名原则;
③:数据类型对于存储数据的应用varchar,对于编写序号的要用bigint或int,在分不清该用何种类型时先用varchar。
- 数据库设计及命名规范http://blog.csdn.net/zhang_xinxiu/article/details/8521673
- JDBC连接MySQL数据库及示例 (http://blog.csdn.net/cxwen78/article/details/6863696)
- 强命名程序集 sn.exe GAC(转http://blog.csdn.net/chenfeiyang2009/article/details/6055199)
- python编码规范(转自:http://blog.csdn.net/yefengnidie/article/details/6721781)
- SQLite数据库的挂接及常用命令(转自:http://blog.csdn.net/windone0109/article/details/5514948)
- 设计模式1——Singleton设计模式http://blog.csdn.net/chjttony/article/details/7426077
- 设计模式(http://blog.csdn.net/zhangerqing/article/details/8239539)
- java 设计模式详解 http://blog.csdn.net/zhangerqing/article/details/8194653
- C++中智能指针的设计和使用 http://blog.csdn.net/hackbuteer1/article/details/7561235
- http://blog.csdn.net/lzwglory/article/details/49473013 spring中设计模式详解
- java 23中设计模式 http://blog.csdn.net/doymm2008/article/details/13288067
- NoSQL数据库的基础知识 转载http://blog.csdn.net/xyz_lmn/article/details/8052348
- SqlServerCE数据库类(转自http://blog.csdn.net/letian_fly/article/details/2975962)
- 数据库触发器(转自http://blog.csdn.net/chinayuan/article/details/6292335/#)
- C连接MySQL数据库开发 --http://blog.csdn.net/xyang81/article/details/26814633
- Windows事件驱动机制及消息循环 http://blog.csdn.net/liaoming321/article/details/4605133
- sigsuspend 函数使用 及与http://blog.csdn.net/liwentao1091/article/details/6619089pause区别
- Servlet 中文乱码问题及解决方案剖析--转载--http://blog.csdn.net/xiazdong/article/details/7217022
- mysql开启远程登录访问
- POJ 2533 Longest Ordered Subsequence
- wpa supplicant
- 【不严谨的NEXT函数陷阱】poj 1961——Period解题报告及反例一组
- java生成xml文件
- 数据库设计及命名规范http://blog.csdn.net/zhang_xinxiu/article/details/8521673
- 【linux】信号列表
- 如何关闭 Windows 7 的休眠功能,并删除 hiberfil.sys?
- Spring+Mybatis整合事务不起作用之解决方案汇总
- json 转换
- STM32 FSMC学习笔记
- CalendarTestMine
- java源码分析之HashMap
- python logging模块学习