简化/简写SQL数据定义语言?

biz*_*lop 11 mysql sql ddl shorthand database-schema

有些人喜欢用简单的文本方式描述他们的数据库结构,而不是使用CREATE TABLE语句.一些例子:

你知道任何将这种速记符号转换为实际SQL语句的软件吗?

biz*_*lop 7

实际上,我刚刚创建了一个PHP脚本,它正是这样做的,但我希望有更专业的东西......

演示我的转换器:

http://simpleddl.orgfree.com

输入示例:

= ID id P AI

person
  ID
  mother_id -> person
  father_id -> person
  !FK mother_id, father_id -> family U:C, D:C

family
  P female_id -> person
  P male_id   -> person
Run Code Online (Sandbox Code Playgroud)

输出:

CREATE TABLE IF NOT EXISTS person (
   id         INT NOT NULL AUTO_INCREMENT,
   mother_id  INT NOT NULL,
   father_id  INT NOT NULL,
   PRIMARY KEY ( id )
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;

CREATE TABLE IF NOT EXISTS family (
   female_id  INT NOT NULL,
   male_id    INT NOT NULL,
   PRIMARY KEY ( female_id, male_id )
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE person ADD FOREIGN KEY ( mother_id ) REFERENCES person( id );
ALTER TABLE person ADD FOREIGN KEY ( father_id ) REFERENCES person( id );
ALTER TABLE person ADD FOREIGN KEY ( mother_id, father_id ) REFERENCES family( female_id, male_id ) ON DELETE CASCADE ON UPDATE CASCADE;

ALTER TABLE family ADD FOREIGN KEY ( female_id ) REFERENCES person( id );
ALTER TABLE family ADD FOREIGN KEY ( male_id ) REFERENCES person( id );
Run Code Online (Sandbox Code Playgroud)