讓你提前認識軟體開發(28):資料庫預存程序中的重要表資訊的儲存及相關建議

來源:互聯網
上載者:User

第2部分 資料庫SQL語言

資料庫預存程序中的重要表資訊的儲存及相關建議

 

1. 預存程序中的重要表資訊的儲存

        在很多預存程序中,會涉及到對錶資料的更新、插入或刪除等,為了防止修改之後的表資料出現問題,同時方便追蹤問題,一般會為一些重要的表建立一個對應的debug表。這個debug表中的欄位要包括原表的所有欄位,同時要增加操作時間、作業碼和操作描述等欄位資訊。

        例如,在某項目中,包括了如下一個重要的表tb_XXX:

create table tb_XXX

(

     AAA                varchar(30)    not null,    -- AAA

     BBB                varchar(30)    not null,   -- BBB

     CCC                int                     not null,   -- CCC

     . . . . . .

)

 

        我們的debug表可以命名為tb_XXX_debuglog,其定義如下:

create table tb_XXX_debuglog

(

     AAA                varchar(30)    not null,   -- AAA

     BBB                varchar(30)    not null,   -- BBB

     CCC                int           not null,   -- CCC

     . . . . . .

    opertime           varchar(19)        not null,    -- operating time

    result              varchar(20)     not null,   -- result code

    description     varchar(100)    not null,  -- operating description

    reservechar1  varchar(30)            null   -- reserved

)

 

         增加的欄位如紅色字所示,其中opertime表示操作時間,result表示結果碼(成功或失敗等),description表示操作描述,reservechar1為保留欄位。

        預存程序中,在對tb_XXX表進行重要操作之前,可以先將裡面的資料插入(轉存)到tb_XXX_debuglog表中。在需要尋找相關資訊或排錯的時候,可以很方便地找到,提高了程式的異常處理能力。

 

2. 一些建議

        (1) 在編寫完資料庫指令碼之後,一定要用checksql等工具對指令碼進行檢查,可以發現編程中的一些潛在的不足,如索引建立過少、文法有誤等。

        (2) 一定要按照公司的規範來對資料庫指令碼進行命名,不能認為只要代碼寫好了,怎麼命名無所謂。

        (3) 不管是建表指令碼還是建立預存程序的指令碼,代碼的排版(如縮排、換行、對齊、留空行等)很重要,要盡量使得自己的代碼閱讀起來方便。因為我們首先是為人編寫程式,其次才是電腦。

        (4) 當需要在原來的SQL語句中增刪欄位或做其它修改時,建議先將整段SQL語句注釋掉,然後將修改之後的語句添加到被刪除語句的下方,盡量不要在原語句上直接進行修改,這樣方便以後版本的比較。

        (5) 對於預存程序中的if、else、else if、while、begin、end等語句自佔一行,執行語句不要緊跟其後,不論其包括的執行語句有多少條,都要加語句塊標誌begin…end,這樣方便閱讀。

 

        與C/C++/Java等程式設計語言一樣,編寫SQL資料庫指令碼也需要遵循一定的規則。我們不僅要讓指令碼實現它要完成的功能,而且要讓效能盡量達到最優。“實踐出真知”,只有不斷地練習和總結,我們的資料庫編程能力才會得到提高。

 

 

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,號:245924426,歡迎關注!)

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.