軟件設計包括系統設計和數據庫設計,一個專業的軟件工程項目數據表大都超過100個,有的幾百個。作爲專業的編程人員,如果不對數據表形成概念,編程時必然會造成困難。解決問題的關鍵就是熟悉它們,再熟悉它們。隨着項目的進展,業務、邏輯、數據逐漸清晰。
編程時可供參考的資料一般是數據庫設計文檔,包括ER圖。數據表中的所有關聯都反映在ER圖中,編程者需要理解表之間的關係,根據業務需要編制SQL代碼。這些工作看起來很簡單,當表之間的關係越來越複雜時,正確理解並完整地實現就不容易了。
爲了更好地理解數據表,可以從面向對象和關係數據庫兩方面的觀點來分析。關於面向對象分析方法和關係數據庫的設計,可以從網上找到相當多的論文。設計數據庫時仍會爲現實的類與存儲的表之間的映射而費盡心思,因此設計數據庫需要理論、經驗和判斷。而編程時則要從數據表的關係中看出業務系統的框架來,或者說將二者結合起來形成清晰的概念。“不當家不知柴米貴”,談何容易!
一種典型的業務流是單據流轉。單據有一個生存週期及狀態遷移,針對其特點表中對應一個狀態字段。單據的不同狀態決定其所屬的業務位置。這時問題就來了,程序除了處理正常的用戶操作,還要對所有可能的異常操作做出正確的反應。迫在眉睫的交付期限,有時更象打心理戰。完成代碼時要象作外科手術一樣,一針一線條理清楚,線線不虛其用。
程序進入測試期,對業務流程的測試繁瑣、複雜。此時測出的BUG如果是通過多個特殊的步驟出現的,要迅速地定位並修正就很不容易了。當然,這只是相對而言,任何BUG都會象蛛絲一樣被輕輕抹去,只要事先有充足的準備,例如對數據表很熟悉,這確實很重要。
程序備忘錄:之五-熟悉數據表(2004/08/23 20:04)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
SimpleRouter: the problem
Problem StatementA routers job is to route packets of information to the co
ralph623
2020-06-16 12:13:20
regex_test.cpp -- learning boost.regex
boost.regex 庫的用法,看來這可能是 boost 當中寫法最“常規”的庫之一了。regex_test.cpp:#include #inclu
ralph623
2020-06-16 12:13:20
TopCoder challenge: SimpleRouter --- Reloaded
ralph623
2020-02-24 10:27:43
TopCoder challenge: SimpleRouter
ralph623
2020-02-24 10:27:43
DiskDefrag: the problem
ralph623
2020-02-24 10:27:43
程序備忘錄:之八-畫面遷移表(2004/09/24 15:27)
ogogog
2018-09-02 02:18:35
程序備忘錄:之一-從B票到編碼的回視(2004/06/30 11:30)
ogogog
2018-09-02 02:18:35
程序備忘錄:之三-郵件轟炸(2004/07/12 15:42)
ogogog
2018-09-02 02:18:35
程序備忘錄:之七-狀態的聯想(2004/08/31 19:10)
ogogog
2018-09-02 02:18:35
程序備忘錄:引言(2004/06/28 13:54)
ogogog
2018-09-02 02:18:35
程序備忘錄:之四-時間表中的計劃(2004/07/21 13:18)
ogogog
2018-09-02 02:18:35
程序備忘錄:之十-WEB經典小問題(2004/10/23 13:48)
ogogog
2018-09-02 02:18:35
程序備忘錄:之九-用例和腳本(2004/09/27 20:17)
ogogog
2018-09-02 02:18:35
程序備忘錄:之二-積累創作素材(2004/07/06 17:20)
ogogog
2018-09-02 02:18:33
程序備忘錄:之六-判定樹的用法(2004/08/23 20:06)
ogogog
2018-09-02 02:18:33