業務建模:枚舉欄位的類型選擇

來源:互聯網
上載者:User
選擇合適的枚舉值

在資料庫建表的時候,經常會遇到建立狀態、性別、類型等欄位的業務需求。

這些欄位有一個共同的特點,它們的業務含義通常就是這麼幾個取值。這樣的欄位我們可以稱為枚舉欄位。

確定一個欄位是否是枚舉欄位,得參考它所表達的業務含義。如果是在電商業務中,商品表有商品類型欄位,一般的電商都是可以動態添加或者刪除類型,也就是說,商品類型可能有無數個取值,那麼它就不是枚舉欄位。 選擇合適的儲存方式

對於性別欄位,我們可以使用0,1,2這樣的數字值來表示,也可以使用‘M’,’F’,這樣的類型來表示。
再說一個複雜的例子,訂單狀態,它可以有未支付,已付款,已出庫,已送達等等的狀態,我們可以使用0,1,2,3等等來表示,也可以使用UNPAY,PAY_SUCCESS,CLOSE這樣的字串來表示。

總的來說,可以用純數字編碼或者字串編碼來表示。 純數字編碼的優缺點 在業務含義比較簡單的情況下,比如說需要一個欄位來表示是否啟用這個業務含義,這個業務只有未啟用,已啟用這兩個有業務含義,這時候使用0,1這樣的純數字來表示是比較合適的,也方便理解。 在業務含義取值比較多的時候(n>2,n不是無限多哈),比如說需要一個欄位來表示訂單狀態這個業務含義,這時候如果還使用0,1,2,3 這樣的數字來表示的話,在業務上是不便於理解的。 字串編碼的優缺點 接上面純數字編碼的缺點分析,如果訂單狀態這個業務含義使用UNPAY,PAY_SUCCESS,CLOSE字串的方式的話在業務上面是比較直觀的。 使用字串表示枚舉的時候,有一個缺點就是可能字串太長,在團隊開發中容易出點小問題。比如訂單狀態已付款狀態,有可能有人寫pay_success,有人寫pay-success。對於這種情況,要建立公用類統一處理,不允許自己拼字,避免出錯的可能。 當然,要控制枚舉字串的拼字規則,比如說只能使用全大寫+底線的方式,減少拼字錯誤的可能。 總結

總的來說,不管使用純數字或者是字串的方式來表示枚舉欄位,都要有一個原則,要方便明了地表示出該欄位的業務含義。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.