在开发过程中数据库的操作和使用要有一定规范,不然会引起混乱。
下边是我们开发中具体例子,因为涉及公司在用项目详细代码就不列出来了,整个思路可供参考。
1.初始化脚本
各子系统建立自己的数据库初始化脚本,格式可参照附件产品管理初始化脚本sql.rar(需要解压到c:/sql才能在命令行执行,见init.sql说明)
包括两部分内容:1.建表语句(ddl);2.基础数据初始化(data)
建表语句由数据库设计文档(PowerDesigner)导出,基础数据由excel文件导出(sql.rar提供示例,开发框架提供工具支持DbUtilTest.testExcel2Sql ())
作用:
1.数据库结构和基础数据文档化
2.便于快速搭建开发测试环境,新建一套环境时不用拷贝原数据库而是执行脚本
3.便于独立开发测试,有一个干净的数据,避免开发测试依赖历史数据和调试过程中互相影响
2.数据库结构比对
在部署多套数据库时,怀疑表结构不一致,可使用DbUtilTest.testCompareDataBase ()进行检查。
执行后会在子系统根目录生成dbcompare.html 文件,参加附件。
说明:红色表示两个表结构不一致,绿色表示多出一表,黑色表示一致
3.数据库字符集(UTF-8)
create database dbname CHARACTER SET utf8 COLLATE utf8_bin
不单独对表和字段设置字符集,整个库统一使用utf-8
4.表名字段名
建库脚本中表名和字段名不区分大小写
5.数据库引擎(InnoDb)
目前主要使用的两种引擎MyIsam,InnoDb。MyIsam查询较快,不支持事务。InnoDb支持事务。
在建表sql指明引擎。
create table ***
(
id bigint(11) not null auto_increment,
.........
primary key (id)
)
type = innodb;
powerdesiner按如下方式设置: