亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數據庫是否會引發惡

數據庫是否會引發惡

蕪湖不蕪 2019-08-06 15:51:56
數據庫是否會引發惡 數據庫觸發器是個壞主意嗎?根據我的經驗,它們是邪惡的,因為它們可能導致令人驚訝的副作用,并且難以調試(特別是當一個觸發器觸發另一個觸發器時)。通常開發人員甚至不會考慮是否存在觸發因素。另一方面,似乎你必須FOO在數據庫中創建一個新的邏輯,然后在數據庫中創建一個新的最簡單的地方就是FOO表上的插入觸發器。我們唯一一次使用觸發器就是設置簡單的東西ModifiedDate。
查看完整描述

3 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

觸發器的主要問題是:a)它們完全是全局的 - 無論表活動的上下文如何,它們都適用; 和b)他們是隱秘的; 很容易忘記他們在那里,直到他們以無意的(并且非常神秘的)后果傷害你。

這意味著他們需要在適當的情況下小心使用; 根據我的經驗,這僅限于關系完整性問題(有時候粒度比你聲明性的更細); 通常不用于商業或交易目的。因人而異。


查看完整回答
反對 回復 2019-08-06
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

我同意。觸發器的問題是人,而不是觸發器。雖然更多的是要考慮,更多考慮并增加編碼人員正確檢查事物的責任,但我們不會丟棄索引以使我們的生活更簡單。(錯誤的索引可能和壞的觸發器一樣糟糕)

觸發器(在我看來)的重要性在于...... 
- 任何系統都應該始終處于有效狀態
- 強制執行此有效狀態的代碼應該是集中的(不是每個SP都寫入)

從維護的角度來看,觸發器對于競爭對手的編碼器非常有用,對于更多初級/業余的編碼器來說也是如此。然而,這些人需要以某種方式學習和成長。

我想這取決于你的工作環境。你有可靠的人,他們學得很好,可以信任有條不紊嗎?如果不是你,你似乎有兩個選擇:
- 接受你必須失去功能來補償
- 接受你需要不同的人或更好的培訓和管理

它們聽起來很刺耳,我想它們都是。但這是基本的事實,在我看來......


查看完整回答
反對 回復 2019-08-06
  • 3 回答
  • 0 關注
  • 493 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號