數字很難標明業務含義,大腦難記憶,前端的溝通成本增長,傳錯數字後,數據則插錯表,調試定位困難,消耗了精力。前端
解決方案是: 避開數字標識。客戶端使用字符串爲參數,告訴服務端,如微信的支付類型使用trade_type=JSAPI|MWEB分別表示公衆號支付和h5支付。這裏若使用數字,確實難以理解業務意義。淘寶開放給商家的api查詢指定訂單狀態,使用的爲字符串status=WAIT_BUYER_PAY|WAIT_SELLER_SEND_GOODS。數據庫存儲的是數字,服務端作了一層轉換成數字的操做。數據庫
WAIT_BUYER_PAY:等待買家付款api
WAIT_SELLER_SEND_GOODS:等待賣家發貨微信
SELLER_CONSIGNED_PART:賣家部分發貨函數
WAIT_BUYER_CONFIRM_GOODS:等待買家確認收貨性能
TRADE_BUYER_SIGNED:買家已簽收(貨到付款專用)設計
TRADE_FINISHED:交易成功調試
TRADE_CLOSED:交易關閉htm
TRADE_CLOSED_BY_TAOBAO:交易被淘寶關閉支付寶
TRADE_NO_CREATE_PAY:沒有建立外部交易(支付寶交易)
WAIT_PRE_AUTH_CONFIRM:餘額寶0元購合約中
PAY_PENDING:外卡支付付款確認中
ALL_WAIT_PAY:全部買家未付款的交易(包含:WAIT_BUYER_PAY、TRADE_NO_CREATE_PAY)
ALL_CLOSED:全部關閉的交易(包含:TRADE_CLOSED、TRADE_CLOSED_BY_TAOBAO)
PAID_FORBID_CONSIGN,該狀態表明訂單已付款可是處於禁止發貨狀態。
什麼狀況下使用數字標識?
只有兩種狀態,0和1,開和關,容易使用數字來表示,超過2種,難記住數字表明的含義了。即使只有兩種狀態,使用字符串也比數字更加容易理解業務意義。
如使用on來表明開啓,使用off來表明關閉。很是明確。若使用1和0來標識,1究竟是刪除仍是不刪除,若是沒有註釋說明,須要去猜想,每一個人設計習慣不同,增長誤解。
給外部看使用字符。而數據庫存儲,使用數字存儲
數據庫之因此存儲數字,有一些好處:
在這方面,踩過一些坑,如代碼調用出錯、出現bug難定位緣由、增長誤解、耗費溝通時間。開發人員陷入到沒必要要的麻煩中去。