Utilice vim y Markdown para convertir la base de datos exportada de MySQL en un diccionario de datos (tabla de Markdown)
1. Convertir a tabla
# 将导出的各个字段以'|'分隔
%s/^\s*`\([^`]\+`\)\s*\(\w\+[^ \t]*\)\s*\(.*\)$/| \1 | \2 | \3 |/gc
# 将注释转换为'|'分隔
%s/COMMENT\s*'/| '/gc
# 整理,删除两个'|'之间的','字符
%s/,\s*|/ |/gc
# 添加表头
%s/^\(CREATE\s*TABLE\s*.*\)$/\1\r|字段|类型|缺省值|备注|\r|-|-|-|-|/gc
# 添加内部链接
%s/^DROP\s*TABLE\s*[^`]\+`\(\w\+\)`;/![][b-png]<span id="\1">\ <\/span>\r## \1/gc
Ejemplo de SQL exportado por MySQL:
DROP TABLE IF EXISTS `t_001_info`;
CREATE TABLE `t_001_info` (
`id` varchar(32) NOT NULL,
`code` varchar(32) NOT NULL COMMENT '行政区划',
`info` varchar(64) NOT NULL COMMENT '信息',
`online` char(1) NOT NULL COMMENT '状态',
`address` varchar(18) NOT NULL COMMENT '地址,16进制',
`update_time` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `t_001_index` (`id`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `t_002_fn49`;
CREATE TABLE `t_002_fn49` (
`id` varchar(32) NOT NULL,
`area_id` varchar(18) DEFAULT NULL COMMENT '区域id',
`pn` varchar(12) NOT NULL COMMENT '测量点标识',
`Uab_Ua` varchar(8) DEFAULT NULL COMMENT 'Uab/Ua 相位角',
`Ub` varchar(8) DEFAULT NULL COMMENT 'Ub 相位角',
`Ucb_Uc` varchar(8) DEFAULT NULL COMMENT 'Ucb/Uc 相位角',
`Ia` varchar(8) DEFAULT NULL COMMENT 'Ia 相位角',
`Ib` varchar(8) DEFAULT NULL COMMENT 'Ib 相位角',
`Ic` varchar(8) DEFAULT NULL COMMENT 'Ic 相位角',
`sendTime` varchar(19) NOT NULL COMMENT '启动帧发送时标',
PRIMARY KEY (`id`),
KEY `t_002_index` (`id`,`pn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='电压/电流相位角';
El texto después del reemplazo anterior:
![][b-png]<span id="t_001_info"> </span>
## t_001_info
CREATE TABLE `t_001_info` (
|字段|类型|缺省值|备注|
|-|-|-|-|
| id` | varchar(32) | NOT NULL |
| code` | varchar(32) | NOT NULL | '行政区划' |
| info` | varchar(64) | NOT NULL | '信息' |
| online` | char(1) | NOT NULL | '状态' |
| address` | varchar(18) | NOT NULL | '地址,16进制' |
| update_time` | varchar(32) | NOT NULL |
PRIMARY KEY (`id`),
UNIQUE KEY `t_001_index` (`id`,`code`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
![][b-png]<span id="t_002_fn49"> </span>
## t_002_fn49
CREATE TABLE `t_002_fn49` (
|字段|类型|缺省值|备注|
|-|-|-|-|
| id` | varchar(32) | NOT NULL |
| area_id` | varchar(18) | DEFAULT NULL | '区域id' |
| pn` | varchar(12) | NOT NULL | '测量点标识' |
| Uab_Ua` | varchar(8) | DEFAULT NULL | 'Uab/Ua 相位角' |
| Ub` | varchar(8) | DEFAULT NULL | 'Ub 相位角' |
| Ucb_Uc` | varchar(8) | DEFAULT NULL | 'Ucb/Uc 相位角' |
| Ia` | varchar(8) | DEFAULT NULL | 'Ia 相位角' |
| Ib` | varchar(8) | DEFAULT NULL | 'Ib 相位角' |
| Ic` | varchar(8) | DEFAULT NULL | 'Ic 相位角' |
| sendTime` | varchar(19) | NOT NULL | '启动帧发送时标' |
PRIMARY KEY (`id`),
KEY `t_002_index` (`id`,`pn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='电压/电流相位角';
Luego, copie el texto en Markdown
2. Indexación (enlace interno)
# 制作内部链接
%s/^CREATE\s*TABLE\s*.\(\w\+\).\s*(\s*\n\%(\s.*\n\)\+).*[^=]*=[^=]*=\([^;]*\);/[\1](#\1)(\2)/gc
# 删除非索引文本
v/^\[t_/d
# 整理,删除'(utf8)'
%s/([^#'][^)]*)$//gc
Luego, copie el texto en Markdown
[t_001_info](#t_001_info)
[t_002_fn49](#t_002_fn49)('电压/电流相位角')
3. Embellecimiento de formas
Agregue el siguiente texto en el lugar apropiado al comienzo del archivo MArkdown
# 改变CSS定义的各列的宽度
<style>
table th:nth-of-type(1) {
width: 28%;
}
table th:nth-of-type(2) {
width: 12%;
}
table th:nth-of-type(3) {
width: 25%;
}
</style>
4. Resultado de salida (diccionario de datos)
t_001_info
t_002_fn49 ('Voltaje / Ángulo de fase actual')
t_001_info
CREAR TABLA t_001_info
(
Campo | Tipos de | Valor por defecto | Observaciones |
---|---|---|---|
id` | varchar (32) | NO NULO | |
código` | varchar (32) | NO NULO | 'Divisiones administrativas' |
info` | varchar (64) | NO NULO | 'información' |
en línea` | char (1) | NO NULO | 'estado' |
dirección` | varchar (18) | NO NULO | 'Dirección, hexadecimal' |
update_time` | varchar (32) | NO NULO |
LLAVE PRIMARIA ( id
),
LLAVE ÚNICA t_001_index
( id
, code
) USANDO BTREE
) MOTOR = InnoDB DEFAULT CHARSET = utf8;
t_002_fn49
CREAR TABLA t_002_fn49
(
Campo | Tipos de | Valor por defecto | Observaciones |
---|---|---|---|
id` | varchar (32) | NO NULO | |
area_id` | varchar (18) | DEFAULT NULL | 'ID de área' |
pn` | varchar (12) | NO NULO | 'Identificación del punto de medición' |
Uab_Ua` | varchar (8) | DEFAULT NULL | 'Ángulo de fase Uab / Ua' |
Ub` | varchar (8) | DEFAULT NULL | 'Ángulo de fase Ub' |
Ucb_Uc` | varchar (8) | DEFAULT NULL | 'Ángulo de fase Ucb / Uc' |
Él` | varchar (8) | DEFAULT NULL | 'Ia fase de ángulo' |
Ib` | varchar (8) | DEFAULT NULL | 'Ángulo de fase Ib' |
Ic` | varchar (8) | DEFAULT NULL | 'Ángulo de fase Ic' |
sendTime` | varchar (19) | NO NULO | 'Iniciar el envío de la marca de tiempo' |
PRIMARY KEY ( id
),
KEY t_002_index
( id
, pn
)
) MOTOR = InnoDB DEFAULT CHARSET = utf8 COMMENT = 'Voltaje / ángulo de fase actual';