回覆列表
-
1 # 君子如龍69
-
2 # microkof
因為這是遵照古老的但是錯誤的實踐。
從前凡是字典都從零排列,這有兩個問題:人腦無法快速反推,你看到3你知道3代表訂單的哪個狀態?你只能查字典表。0一定代表男?趕上女士優先的程式設計師,偏讓0代表女,你能說啥?
第二個問題就是,0是假值,0跟一群真值混在一起本身就是錯誤的實踐。
正確做法:M代表男,F代表女,ING代表進行中,ED代表完成,TODO代表未開始,等等。真遇到複雜的狀態,比如十幾個狀態,而且還可能隨時新增,就首先歸類,比如分為三類,然後用下劃線連線人腦能閱讀的單詞,比如D_ING,只要人腦知道D代表什麼,就可以縮寫成這種簡單列舉值。
-
3 # 魍魑魅魎
因為計算機上古蠻荒時代,每一個位元組的記憶體都彌足珍貴。剛好男女可以用1個位元表示,後來者繼承了這個傳統,但是操作bit太麻煩了,就用位元組的0,1表示了。其實大可不必,現代計算機直接寫男,女,人妖也沒啥問題的。
-
4 # 自然框架
源於古老的資料庫設計。
想當初硬碟空間很有限,資料庫存放資料的時候那是能省就剩,絕對不會浪費,於是產生了千年蟲問題。
存放性別也是一樣。
男女兩種狀態,如果用位(bit)來表示,0代表女,1代表男,那麼記錄八個性別才佔用一個位元組。
如果用英文字母(英國、美國資料),一個位元組只能放一個字母。
如果用漢字,一個位元組只能放半個漢字。
這容量上的差距就大了去了。
另外還有查詢速度問題,很顯然按位查詢,比按字串查詢要快的多。
所以在古老的計算機環境裡面,為了節省硬碟空間,為了提高查詢效率,比如會有01表示性別。
當然現在硬碟容量大了,不差那一點,查詢效率也提升了,資料量不大的話,也不用那麼太在意。
我前端也覺得定義01還不錯啊配置資料字典lookup裡取值,大家都方便01,02,0010,0020也比較常用