討論:使用觸發器適應商務程序的變化是否是好的作法?

來源:互聯網
上載者:User

本人蔘與的項目現在正處於維護階段,由於前期需求或設計存在一些遺留問題,加之客戶經常提出需求變更,頻繁的修改讓人苦不堪言,每次修改之後又要大規模測試,很是麻煩。其中不少需求都是對多步資料庫操作中添加或修改其中的某些步驟,比如以前對於記錄是直接刪除,現在突然提出刪除之後要備份到別的表裡去;或者以前對於申請單是單純的審核,現在審核完了還要將其歸檔轉移到別的表,諸如此類。

按理說,需求的變更要反應到代碼的變化。有時候為了偷懶,就直接從資料庫下手了,商務程序如果添加某個步驟我就加一個觸發器,一樣能達到效果。好處就是不需要改代碼重編譯了,很方便,而且我們的項目沒用ORM,都是手寫SQL,寫到資料庫裡更方便。壞處嘛,也很明顯,代碼部分不知道有觸發器,一個商務程序的實現放在兩個位置,以後如果這個流程出現問題,往往就會忘了觸發器可能需要修改,而就盯著代碼上了。

我在項目中使用的是資料庫是Oracle,觸發器一般就是用來給一個記錄寫一個ID,總覺得如果僅僅這樣未免沒有充分利用他。大家覺得用觸發器這樣適應商務程序的變化可行嗎,如果可行,應該有個什麼樣的使用標準呢?同時觸發器在項目中還能應用在哪些地方?

觀點淺薄了點,還望各位不吝拍磚。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.