覺得都差不多? 是不是鉤子函數出了什麼意外就不會執行.
鉤子函數:可簡單地理解為行為發生的點,例如登入過程(提交帳號密碼->驗證帳號密碼->驗證是否帳號被鎖->傳回登入結果),你可以在上面四個步驟的任一個點設定一個鉤子,然後做擴展處理(例如我可能在“驗證帳號密碼”這個點,我實現一個鉤子函數,獲取到提交的帳號和密碼是“001/111”,則將提交的資料改為" user_001/pass_111", 然後程式實際在資料庫作比較的時候,比較的是「user_001/pass_111」這個帳號密碼)。 事務:更多是指資料庫層級的,例如一次交易過程。張三給李四打款100,會分成兩步:1. 張三的帳戶扣100;2,李四的帳戶加100。那我們必須保證這兩個操作要嘛都成功,要嘛都失敗,才算是正確的,這需要一個事務。事務就是把若干的小步驟當作一個整體的大步驟的東東。這若干的小步驟不是都成功,就是都失敗,不允許一部分成功一部分失敗。 事務的流程是:1, 開啟事務2,依序執行小步驟a,b,c,d.....3, 如果全部執行成功,提交事務(資料庫永久保存所有變動)4,如果任一個小步驟失敗,回滾交易(資料庫還原所做的資料變動,退回到開啟交易之前的資料所處的狀態)
鉤子函數:可簡單地理解為行為發生的點,例如登入過程(提交帳號密碼->驗證帳號密碼->驗證是否帳號被鎖->傳回登入結果),你可以在上面四個步驟的任一個點設定一個鉤子,然後做擴展處理(例如我可能在“驗證帳號密碼”這個點,我實現一個鉤子函數,獲取到提交的帳號和密碼是“001/111”,則將提交的資料改為" user_001/pass_111", 然後程式實際在資料庫作比較的時候,比較的是「user_001/pass_111」這個帳號密碼)。
事務:更多是指資料庫層級的,例如一次交易過程。張三給李四打款100,會分成兩步:1. 張三的帳戶扣100;2,李四的帳戶加100。那我們必須保證這兩個操作要嘛都成功,要嘛都失敗,才算是正確的,這需要一個事務。事務就是把若干的小步驟當作一個整體的大步驟的東東。這若干的小步驟不是都成功,就是都失敗,不允許一部分成功一部分失敗。
事務的流程是:
1, 開啟事務
2,依序執行小步驟a,b,c,d.....
3, 如果全部執行成功,提交事務(資料庫永久保存所有變動)
4,如果任一個小步驟失敗,回滾交易(資料庫還原所做的資料變動,退回到開啟交易之前的資料所處的狀態)