決定ERP DB 、Table、Columns 的命名方式
寫 ERP 免不了要建立 SQL 資料庫,好方便判別和程式呼叫使用。但資料庫裡的DB、Table和Columns等之類的物件要用什麼格式? 取什麼名字? 這學問就大了。
目前軟體界對Table 、Column的命名方式有很多種,但總體來講可區分為3種命名方式:
1.有意義的命名法(又稱傳統命名法)
2.無意義的命名法(又稱流水號命名法)
3.其他命名法(自由命名法或以上二種命名法混合) ,也有初看是無意義的命名法,但細看卻是有意義的命名法,這種難以分類,統歸屬 [其他] 類別。
這3種命名方式各有各的特色,簡述如下:
1.有意義的命名法
又稱傳統命名法,使用有意義的英文單字來當Table、Column 的名稱。傳統上我們接受軟體程式設計教育的命名方法就是用英文單字來當Table、Column 的名稱,例如:記錄訂單資料的Table 我們通當取名為Order ,名字長一點的就在單字之間用底線來連接,例:料品主檔,我們就取名為ITEM_MASTER,3個單字以上的就如法泡製,不再說明了。
*優點:
有意義的命名方式的優點是一目了然,寫程式時一看這單字就知道這個Table 是做什麼的,這種命名方式的代表ERP 就是Oracle ERP,打開後台DB 來看,Table 、Column 都是英文單字組合而成的。
*缺點
採用此方式的命名方法最大缺點是建立Table 時較耗費時間。有意義的命名方式對母語是英語系國家的程式設計師來講對非常簡單,可用他們自己習慣的母語單字來命名Table 和 Column,隨想隨打,沒有阻礙。但對非英語系國家的程式設計師來講卻有一種語言隔閡存在,簡單的單字還可應付,複雜一點的語詞就要求助於英文字典了。設計師要一邊取中文名字,一邊查英文字典,一個Table 約有20來個欄位,這20個欄位查完了,恐要費20分鐘左右才能查完。ERP 裡大約有200個左右的TABLE ,也就是說大約2到3個星期才能建完,相當耗費時間。(當然有經驗的設計師完成的日數會較短)。
2.無意義的命名法
*優點:
無意義的命名法最大的優點就是可快速完成大量 Table 的建立。因為,流水號命名法簡單的講就是不管這TABLE 是做什麼的就給它一個代號,例如:訂單Table 就取名為OA 2個字母,沒錯就只有2個字母而已(註:也有的是用3個或4個字母的),而此Table 裡的欄位(Column)名就以 OA + 流水號命名,如:OA01 OA02…等一直延續下去,不管這欄位是代表什麼意思就全部用Table 名+流水號這種無腦命名法來命名(如下圖)。
ColumnName
OA01 |
單據號碼 |
OA02 |
訂單日期 |
OA03 |
料號 |
以下略…
這樣一個Table 約5分鐘就可建立完成了,ERP 全部 200多個Table 約可在3天內全部完成,完成速度是有意義命名法的好幾倍。
另外2項優點:基於程式碼愈短完成速度愈快的原則,較短的Table 名和欄位名在寫程式時速度可加快一點;所有變數可按字元排序顯示,在找尋時會比較方便一點。
*缺點
此法最大的缺點就是在寫程式無法立即直觀判斷這欄位是何意義,需費時間翻閱自己記錄的字典檔,從字典檔中了解這欄位代號意義才能寫程式或 SQL (但翻久就差不多記住了)。
3.其他命名法
由於有意義的命名法和無意義的命名法各有優缺點存在,難以取捨,於是有的設計師就會採用2種命名法的特色合成一種混合命名法,我看過以下a, b種方法:
a.欄位意義如果可以用簡單的英文單字表示的話,就用英文單字取名 。
b.欄位意義如須要用較長句子來形容的話,就用流水號命名法。
另外舉一個比較特色的命名方法,那是我公司在大陸的子公司,她們導入一套當地本土的 ERP 系統。我很想知道大陸的ERP Table 欄位是如何命名的,就登入他們 ERP SQL 主機看。當打開DB 看Table 時我頓時愣住(畫面顯示如下表)
Table Name
ZWWLDW
ZWZGZD
LSCONF
LSCKZD
LSWLZD
看到這些Table 名稱文字,一時想不起這是何種 Table 命名方式? 看起來不是有意義命名法,但也非流水號命名法,猜了半天也猜不著,直到打開這Table 看裡面的資料時才勉強猜可能是用模組代號加上中文羅馬拼音的字元組合而成Table 欄位名。
至於Table 裡的欄位名稱命名方式則比較好推敲,可能是採用 Table名+ 底線 + 中文拼音第1碼名組合而成的。
例:LSWLZD 這個 Table 是 [料品基本資料] ,其欄位(Column)名稱如下
欄位名稱 |
中文說明 |
LSWLZD_WLBH |
物料編號 |
LSWLZD_WLMC |
物料名稱 |
LSWLZD_GGXH |
規格型號 |
以下… 略
以 [物料編號] 這個欄位(Column) 名稱來說,[物料編號] 這4字的中文羅馬拼音是 wù liào biān hào ,就取每一個字拼音的第一個拉丁字母來組合,這種命名獨樹一幟,形成中國特色的命名方式。
以上3種命名方式,讀者決定要採用何法?3種命名方法各有各的特色,無法說出那一種比較好,那一種比較不好,端看讀者自己習慣的方式來行使。
註:無意義的命名方法爭議較大,一般程式設計師和初學程式者很難接受此種命名方法,下次筆者有空時再寫一個專題來專門介紹這種愈來愈流行的無意義命名法的優點和其使用方法。
留言列表