前兩個月接了一個公安局的項目,這段時間終于接近尾聲了,程序也基本沒什么問題了。但數(shù)據(jù)遷移的需求擺到了我的面前,因為目前他們正在使用一套基于Oracle的C/S系統(tǒng),這套系統(tǒng)里面有到目前為止所有的人員和案件信息,他們不想重新錄入,所以需要從Oracle中遷移到目前的SQL Server中。
1.我先在本機安裝了一個高版本的Oracle數(shù)據(jù)庫(9i),測試熟悉了一下,學(xué)習(xí)了一下數(shù)據(jù)的導(dǎo)入導(dǎo)出等等功能,然后從服務(wù)器上將現(xiàn)有的數(shù)據(jù)庫導(dǎo)出并Download下來,在本地數(shù)據(jù)庫中建立相同的用戶,導(dǎo)入進本地數(shù)據(jù)庫。
2.由于Oracle轉(zhuǎn)到SQL Server比較麻煩,所以我使用了現(xiàn)成的工具Full Convert Enterprise軟件,很方便的將Oracle數(shù)據(jù)轉(zhuǎn)移到了SQl Server,只有一條數(shù)據(jù)出現(xiàn)了錯誤,這點錯誤可以忽略不計。
3.轉(zhuǎn)移過來之后,查看數(shù)據(jù)庫,發(fā)現(xiàn)絕大部分的字段都是varchar類型,就是因為都是這種類型帶來了一些問題,比如日期,竟然有1940-04-00,暈死了,怪不得總是出現(xiàn)smalldatetime轉(zhuǎn)換溢出。日期非法的問題,可以使用IsDate函數(shù)來檢查一下,正確返回1,非法返回0
4.原系統(tǒng)設(shè)計中最大的問題就是,犯罪人員可以重復(fù)添加進去,導(dǎo)致不同的案件相同的人員卻有多個人員記錄,冗余大。這還不算,身份證和出生日期可以為空,就更麻煩了,根本無法識別哪些是同一人員,對于遷移到新系統(tǒng)中來說很麻煩,沒辦法,只能修改新系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu),將唯一性去掉。
5.原系統(tǒng)中還有幾點不好的地方就是,專門有一個表用來存放詞典,而且比較大,幾萬條,案別,類別,省市區(qū)等等都放進去,最讓我痛恨的是他省市區(qū)不是分開的,而且放在一起的,比如江蘇南京,南京江寧,南京鼓樓,光這樣都三條了,所以大家可以推一下全國三級城市會出現(xiàn)多少條,不僅如此,他還沒有稱號可以分割,比如省、市、區(qū)、縣、自治區(qū)等等,都沒有,有的話還可以切分。新系統(tǒng)使用的省市區(qū)是分離的,所以我暫時沒想到好的辦法解決,就把原系統(tǒng)中的省市區(qū)加到了新系統(tǒng)的詳細地址里面去了。
---------------------------------------------------------
專注移動開發(fā)
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2007-10-22 13:42
TiGERTiAN 閱讀(2839)
評論(5) 編輯 收藏 所屬分類:
VB/ASP 、
Oracle