引子
表名、字段名、類名、方法名、屬性名、變量名、文件名、配置項(xiàng)...,關(guān)于命名,命名規(guī)范其中之一是見名知意。在理解需求時(shí),試著抓重點(diǎn)、看本質(zhì),據(jù)此來命名。切不能強(qiáng)行縮減或隨意縮減。許多時(shí)候,較長的名稱,也比隨意簡拼的名稱易讀。如果需要對名稱縮減,開發(fā)團(tuán)隊(duì)?wèi)?yīng)達(dá)成一致。如企業(yè)id,可以統(tǒng)一enterpriseId,也可以統(tǒng)一使用entId,試想,系統(tǒng)里關(guān)于“企業(yè)id,同時(shí)存在著enterpriseId與entId甚至與merId/merchantId/companyId/qyId/qiyeId,這樣的系統(tǒng)會(huì)趨向熵增。
下面再羅列一些case:
- “學(xué)生成績表”可以簡稱“成績表”,但不能簡稱“學(xué)生表”。
- 平臺服務(wù)商結(jié)算單“可以簡稱”服務(wù)商結(jié)算單“,但不能簡稱”平臺結(jié)算單“。
- “服務(wù)商訂單號”,就談不上簡稱了。因?yàn)樵跇I(yè)務(wù)上,這是一個(gè)完整的詞匯。不能簡稱“訂單號”,這會(huì)與“系統(tǒng)訂單號”存在理解層面的歧義。也不能腦殘地簡稱為“服務(wù)商號”,這會(huì)與“服務(wù)商編號”存在理解層面的歧義。
本文記錄開發(fā)中的兩件事情。
從"他急匆匆地跑來了“來談一下數(shù)據(jù)表字段命名
新項(xiàng)目中有個(gè)優(yōu)惠券的功能,優(yōu)惠券來源于外部的合作通道系統(tǒng)(如微信),我們系統(tǒng)中存儲(chǔ)優(yōu)惠券,會(huì)基于使用情況對企業(yè)客戶進(jìn)行資金結(jié)算。
設(shè)計(jì)的優(yōu)惠券表,部分字段見下方:
CREATE TABLE `coupon_batch` ( `batch_id` bigint(20) DEFAULT NULL COMMENT '批次Id', `service_id` bigint(20) NOT NULL COMMENT '服務(wù)商id', `enterprise_id` bigint(20) DEFAULT NULL COMMENT '企業(yè)id', `channel_batch_id` char(20) NOT NULL COMMENT '第三方優(yōu)惠券批次號', `batch_name` varchar(100) DEFAULT NULL COMMENT '批次名稱', `batch_type` varchar(20) DEFAULT NULL COMMENT '批次類型:NORMAL:代金券批次、DISCOUNT_CUT:立減與折扣、OTHER:其他', `batch_create_time` datetime DEFAULT NULL COMMENT '第三方優(yōu)惠券創(chuàng)建時(shí)間', `begin_time` datetime DEFAULT NULL COMMENT '優(yōu)惠券開始時(shí)間', `end_time` datetime DEFAULT NULL COMMENT '優(yōu)惠券到期時(shí)間', `status` varchar(32) DEFAULT NULL... `reconciliation_status` varchar(20) DEFAULT NULL COMMENT '對賬狀態(tài)-IpsfStateEnum:INIT:未對賬、PROCESSING:對賬中、SUCCESS:對賬完成', ... `create_time` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間', `update_time` datetime DEFAULT NULL COMMENT '修改時(shí)間', `create_by` varchar(32) NOT NULL COMMENT '創(chuàng)建人', `update_by` varchar(32) DEFAULT NULL COMMENT '更新人', ...
注意其中的 batch_create_time 字段和 create_time 字段,有沒有發(fā)現(xiàn) batch_create_time 多少有些不合適呢?
我截圖發(fā)給開發(fā)者小伙。原來,他覺得再加上channel_就顯得這個(gè)字段太長了(“channel_batch_create_time”的確是夠長的),所以就沒加。
我舉了個(gè)栗子:“他急急忙忙的跑來了” 可以簡寫成“他跑來了”,可以簡寫成“他來了”。但是,不能簡寫成“跑來了”、“來了”。
聰明的小伙瞬間明白了。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-772520.html
“服務(wù)商結(jié)算單”并不是“服務(wù)商結(jié)算單” - -?抓住需求重點(diǎn)
我們的服務(wù)商系統(tǒng)曾經(jīng)有一個(gè)需求是“服務(wù)商結(jié)算單”。是基于服務(wù)商系統(tǒng)里每天的客戶交易數(shù)據(jù),以月度為單位,給客戶生成結(jié)算文件。
下面是結(jié)算表的表結(jié)構(gòu)。這個(gè)表的注釋,你覺得應(yīng)該是什么?
我們的開發(fā)者給的表注釋“服務(wù)商結(jié)算單”。這顯然不妥。應(yīng)該叫“客戶結(jié)算單”。試想,如果你叫“服務(wù)商結(jié)算單”的話,那么,在服務(wù)商系統(tǒng)里給渠道商結(jié)算的表,或者是給自由職業(yè)者結(jié)算的表,或者是給通道結(jié)算的表,表注釋應(yīng)該是什么呢?
就是說,我們應(yīng)該抓重點(diǎn)。服務(wù)商給客戶結(jié)算的表,可以描述為“客戶結(jié)算表”,但一定不可以描述為“服務(wù)商結(jié)算表”。文章來源:http://www.zghlxwxcb.cn/news/detail-772520.html
COLUMN_NAME | DATA_TYPE | DATA_LENGTH | NULLABLE | COMMENTS |
ID | NUMBER | 22 | N | 主鍵 |
MER_ID | VARCHAR2 | 20 | Y | 商戶ID |
MER_NAME | VARCHAR2 | 64 | Y | 商戶名稱(冗余) |
TOTAL_MONTH | VARCHAR2 | 20 | Y | 統(tǒng)計(jì)月份 |
TOTAL_AMT | NUMBER | 22 | Y | 費(fèi)用總額 |
STATUS | VARCHAR2 | 20 | Y | 狀態(tài) |
CREATE_TIME | TIMESTAMP(6) | 11 | Y | 創(chuàng)建時(shí)間 |
COMPLETE_TIME | TIMESTAMP(6) | 11 | Y | 完成時(shí)間 |
FILE_URL | VARCHAR2 | 512 | Y | 結(jié)算單文件路徑 |
?
The End.
到了這里,關(guān)于從"他急匆匆地跑來了“來談一下數(shù)據(jù)表字段命名的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!