業務可以理解為公司/領導/老師交給我們的任務,各種各樣、花裡胡哨。。。。
我們來舉例幾個場景
完成乙個商品購買業務操作如下:
看似很完美??殊不知其中會出現非常非常非常多的問題!
)。問題二:我選擇了購買數量,下單成功,但是資料庫中並沒有訂單記錄(插入失敗),就導致我查詢不到消費記錄(我懵了)。
問題三:下單成功之後,我的錢扣了,商家的錢卻遲遲不加(我和商家都很生氣)
情人節到了,小剛為了表達對小美的愛意,打算給小美轉賬520元讓他感動一番。
轉賬業務操作如下:
看完了場景一的問題之後,場景二會出現上面問題自己應該能想到了吧??
還是我來給你細細道來~~
問題一:支付寶扣小剛520元成功,記錄消費記錄時失敗,導致後面小剛一直查詢不到這條消費記錄(小剛打**投訴客服)
問題二:支付寶扣小剛520元成功,最終呼叫傳送簡訊**失敗,沒有提醒小剛(導致小剛非常不滿意此次消費)
問題三:上面的情況都還好,最怕的就是小美沒有接到來自小剛轉的520元(導致小美向小剛提出分手,小剛瘋了)。
以上場景都屬於業務,我們在做業務模組的功能時都能遇得到。上面我們分析的業務操作多種多樣,僅僅是有業務的概念是遠遠不夠的(小剛都分手了!),因此為了保證業務操作的安全,避免"導致小剛分手"這樣的悲劇發生,我們提出了事務的概念。
事務(transaction):如果乙個業務操作中多次訪問了資料庫,必須保證每條sql語句都執行成功。在乙個事務中的所有操作,要麼全部成功,要麼全部失敗。符合這個條件的業務,那就是事務。
即:事務中的任何操作,要麼一起成功,要麼一起失敗。我的女朋友懂了,你們的呢?乙個完整的事務具備有四個特性,分別為原子性(atomicity)、一致性(consistency)、隔離性、永續性。小剛在轉賬時,如果其中有乙個操作失敗了,那麼所有的操作必須全部回到小剛沒有支付520元之前的狀態。不管小剛給小美轉了多少錢,小剛和小美加起來的錢永遠是一樣的。這就跟你不管去**上買多少東西,你和馬雲加起來的錢總是一樣的(前提是馬雲沒有消費你的錢,但這是不可能的,小美也不可能不消費你的錢)。小剛最多同時只能給乙個女生轉賬,不能給小美和小麗同時轉賬。假設上面的轉賬案例全部完成(小剛成功扣款,小美成功加錢),小剛再也要不回小美的那520元錢了(系統不會無緣無故扣小美520元,然後給你加520元)。如何跟女朋友解釋「W3CShool」之001
html是使用標記標籤來描述網頁的一種標記語言。html文件 網頁,web瀏覽器的作用是讀取html文件並且以網頁的形式來顯示它。瀏覽器不會顯示標籤,而是使用標籤來解釋頁面的內容。1.鏈結 html 鏈結是通過 標籤進行定義的。this is a link 注釋 在 href 屬性中指定鏈結的位址2...
黑客是如何發現女朋友出軌的,痛心的經歷!
作者丨未知 作為乙個不合格的烏雲白帽子,下邊只是冰山一角吧。但如果你是異地,那這也許是最好的教材。事情一開始是這樣,我和gf異地接近一年了,gf有兩個號碼,有乙個是我給她買的,另乙個是自己買的。有一天我突然感覺我倆每天的日常通話時間越來越短,從一開始每天半小時左右下降到了隔兩天一兩分鐘,妹子說忙。但...
4 什麼是事務?MySQL如何支援事務?
什麼是事務?事務是由一步或幾步資料庫操作序列組成邏輯執行單元,這系列操作要麼全部執行,要麼全部放棄執行。程式和事務是兩個不同的概念。一般而言 一段程式中可能包含多個事務。說白了就是幾步的資料庫操作而構成的邏輯執行單元 事務具有四個特性 原子性 atomicity 一致性 consistency 隔離...