狀態值使用具語意的字串,不使用數字代碼。


在設計訂單資料庫欄位的時候,狀態這個欄位應該使用哪一種資料型態呢?答案是統一使用 varchar,也就是字串來表達狀態。

我看過很多團隊會使用 integer 或 tiny integer 這種方式來表達。很常見的就是用 0、1、2、3、4、5 代表訂單生命週期的不同狀態,然後在程式碼裡面做一個 mapping,表示 0、1、2、3、4、5 分別是什麼。

也有團隊會說,有些狀態是訂單已經失去意義了,他們會用 -1、-2、-3、-4 來表達。也有團隊擔心擴充性,所以會用 10、20、30、40、50 來表達,想說未來有必要的話,可以在數字之間加狀態。

我的經驗是,這些做法通通都不好,都不要。直接用 varchar 來表達就可以了。

原因是,那些用數字來表達的方式,是古早時代硬碟成本比較貴的時候,為了省容量才這樣做。現在不管是用雲端主機還是自己的主機,硬碟容量已經不算什麼成本了。

所以,用字串來表達,系統比較好維護,也比較好擴充。你要加狀態的時候,不用擔心數字之間插不進去,因為你就是字串而已。

在程式碼裡、在資料庫裡,你直接打開資料庫查資料的時候,那一筆訂單資料現在到底是什麼狀態,一目了然,都不需要 mapping。這是比較好的做法。

舉個例子,orders 如果有 status 這個欄位,它可能的值就是:draft、open、completed、cancelled。光這樣就夠清楚了。

你寫程式的時候也方便。你在做後台面板的時候,一堆地方,包括後台面板,甚至前台給顧客看的地方,就算你寫程式的時候偷懶,直接把 DB value print 出來,他們大概都看得懂。

後台人員看到那些英文單字,就算沒有把它對應成一個好讀的中文狀態,他可能都看得懂。前台給顧客用的面板,如果有地方偷懶,還是有 bug 沒有寫好,直接噴出那個狀態的英文,也都沒有問題,大家都看得懂。


⭐️ Shopify 網站開發服務(給品牌)
https://job.turn.tw/shopify-services

⭐️ 川川電商事務所(全客製電商開發服務)
https://chuanchuan.tw

⭐️ 台灣 Shopify 商家交流 LINE 群(非官方)
https://line.me/ti/g2/PZ_1LILWVWWuzZQ50HNpYA-A3k6QXWF6znqoBQ

⭐️ 台灣 Shopify 開發者 LINE 群(非官方)
https://line.me/ti/g2/YUasX5K3CJ4QdIx76zppjHlh3-q8w-xkSyK1LA

共有 0 則留言


⭐️ Shopify 網站開發服務(給品牌)
https://job.turn.tw/shopify-services

⭐️ 川川電商事務所(全客製電商開發服務)
https://chuanchuan.tw

⭐️ 台灣 Shopify 商家交流 LINE 群(非官方)
https://line.me/ti/g2/PZ_1LILWVWWuzZQ50HNpYA-A3k6QXWF6znqoBQ

⭐️ 台灣 Shopify 開發者 LINE 群(非官方)
https://line.me/ti/g2/YUasX5K3CJ4QdIx76zppjHlh3-q8w-xkSyK1LA
🏆 本月排行榜
🥇
站長阿川
📝45   💬1  
647
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次