小團(tuán)隊(duì)作戰(zhàn)經(jīng)常是上來就是隨便打下草稿,然后三七二十一使用圖形化工具把數(shù)據(jù)庫表結(jié)構(gòu)建起來了,根本就沒有寫像下面這種數(shù)據(jù)庫設(shè)計(jì)文檔后,才進(jìn)行代碼編寫工作。
但是隨著項(xiàng)目的完成,需要交付給客戶。交付免不了需要各種交付文檔,其中數(shù)據(jù)庫設(shè)計(jì)文檔就是其中一個(gè)需要交付的文檔。有沒有快速編寫數(shù)據(jù)庫設(shè)計(jì)文檔的方法呢?一條語句的事,輕輕松松搞掂。
SET @rownum = 0;
SELECT
'序號(hào)',
'列名',
'類類',
'長(zhǎng)度',
'是否為空',
'列的描述'
FROM
DUAL
UNION
SELECT
@rownum :=@rownum + 1 AS 序號(hào),
COLUMN_NAME AS 列名,
COLUMN_TYPE AS 類型,
CHARACTER_MAXIMUM_LENGTH AS 長(zhǎng)度,
(
CASE
WHEN IS_NULLABLE = 'YES' THEN
'是'
ELSE
'否'
END
) AS 是否為空,
COLUMN_COMMENT AS 列的描述
FROM
information_schema.`COLUMNS`
WHERE
TABLE_NAME = ('jc_user')
從語句中可以看到使用到information_schema庫的COLUMNS 表,是因?yàn)樗袆?chuàng)建的表的字段的元信息都存儲(chǔ)在information_schema庫的COLUMNS 表中,所有使用COLUMNS 表。上面這條語句只是導(dǎo)出jc_user這張確定的表的字段信息。
下面這條SQL語句可以導(dǎo)出查出jeecms2庫的表的名字
SET @rownum = 0;
SELECT
@rownum :=@rownum + 1 AS 序號(hào),
t.table_name AS 表名,
t.TABLE_COMMENT AS 描述
FROM
information_schema.`TABLES` t
WHERE
t.TABLE_SCHEMA = 'jeecms2'
ORDER BY
t.TABLE_NAME;
結(jié)合以上這兩條SQL,可以在使用POI就可以開發(fā)一個(gè)非常實(shí)用的工具,生成數(shù)據(jù)庫設(shè)計(jì)文檔就是那么一分鐘的事。