Tag: sql

用php将markdown格式的表格转化为sql语句

我们在设计数据表结构的时候,通常使用markdown格式,例如如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
## 用户表
总的规则是:一个用户可以管理多个店铺,每个店铺需要配置不同的淘宝账号和密码。
### 用户登陆表:user_login
登陆表,保存用户基本的账号信息
字段 | 类型 | 其他属性 | 说明
------ | ------- | --- | --------
uid | int(11) | auto\_increment,primary | 自增主键。系统内的所有操作都与uid进行关联。
username | varchar(32) | unique | 用户名。唯一键
email | varchar(80) | unique | email。唯一键
password | char(32) | | 加密后的密码
status | tinyint(3) | default 0 | 状态,默认为0。定义如下
create\_time | datetime | | 注册时间
last\_login\_time | datetime | | 最后登陆时间
登陆时,可以使用用户名登陆,或者邮箱登陆。

当我们需要创建表格的时候,可能还需要写成sql,这很费时费力,而且容易出错,难维护。所以写了一个php的解释工具,可以根据markdown文件快速生成对应的sql语句,生成的sql格式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
# md文件:http://git.ibbd.net/ibbd/ibbd-bc-py/blob/master/doc/db-tables.md
# Create By http://git.ibbd.net/ibbd/ibbd-bc-py/blob/master/doc/markdown2sql.php
# Create At 2014-10-14 15:44:36
CREATE TABLE `user_login` {
`uid` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键。系统内的所有操作都与uid进行关联。',
`username` VARCHAR(32) NOT NULL UNIQUE KEY COMMENT '用户名。唯一键',
`email` VARCHAR(80) NOT NULL UNIQUE KEY COMMENT 'email。唯一键',
`password` CHAR(32) NOT NULL COMMENT '加密后的密码',
`status` TINYINT(3) NOT NULL DEFAULT 0 COMMENT '状态,默认为0。定义如下',
`create_time` DATETIME NOT NULL COMMENT '注册时间',
`last_login_time` DATETIME NOT NULL COMMENT '最后登陆时间'
} ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户登陆表';

php代码如下:

READ MORE