開發(fā)過程注意事項(數(shù)據(jù)庫方面)
在開發(fā)過程中數(shù)據(jù)庫的操作和使用要有一定規(guī)范,不然會引起混亂。
下邊是我們開發(fā)中具體例子,因為涉及公司在用項目詳細(xì)代碼就不列出來了,整個思路可供參考。
1.初始化腳本
下邊是我們開發(fā)中具體例子,因為涉及公司在用項目詳細(xì)代碼就不列出來了,整個思路可供參考。
1.初始化腳本
各子系統(tǒng)建立自己的數(shù)據(jù)庫初始化腳本,格式可參照附件產(chǎn)品管理初始化腳本sql.rar(需要解壓到c:/sql才能在命令行執(zhí)行,見init.sql說明)
包括兩部分內(nèi)容:1.建表語句(ddl);2.基礎(chǔ)數(shù)據(jù)初始化(data)
建表語句由數(shù)據(jù)庫設(shè)計文檔(PowerDesigner)導(dǎo)出,基礎(chǔ)數(shù)據(jù)由excel文件導(dǎo)出(sql.rar提供示例,開發(fā)框架提供工具支持DbUtilTest.testExcel2Sql ())
作用:
1.數(shù)據(jù)庫結(jié)構(gòu)和基礎(chǔ)數(shù)據(jù)文檔化
2.便于快速搭建開發(fā)測試環(huán)境,新建一套環(huán)境時不用拷貝原數(shù)據(jù)庫而是執(zhí)行腳本
3.便于獨立開發(fā)測試,有一個干凈的數(shù)據(jù),避免開發(fā)測試依賴歷史數(shù)據(jù)和調(diào)試過程中互相影響
2.數(shù)據(jù)庫結(jié)構(gòu)比對
在部署多套數(shù)據(jù)庫時,懷疑表結(jié)構(gòu)不一致,可使用DbUtilTest.testCompareDataBase ()進(jìn)行檢查。
執(zhí)行后會在子系統(tǒng)根目錄生成dbcompare.html 文件,參加附件。
說明:紅色表示兩個表結(jié)構(gòu)不一致,綠色表示多出一表,黑色表示一致
3.數(shù)據(jù)庫字符集(UTF-8)
create database dbname CHARACTER SET utf8 COLLATE utf8_bin
不單獨對表和字段設(shè)置字符集,整個庫統(tǒng)一使用utf-8
4.表名字段名
建庫腳本中表名和字段名不區(qū)分大小寫
5.數(shù)據(jù)庫引擎(InnoDb)
目前主要使用的兩種引擎MyIsam,InnoDb。MyIsam查詢較快,不支持事務(wù)。InnoDb支持事務(wù)。
在建表sql指明引擎。
create table ***
(
id bigint(11) not null auto_increment,
.........
primary key (id)
)
type = innodb;
powerdesiner按如下方式設(shè)置:
.jpg)