[size=xx-small][/size]说明:用Mysql数据库建库,建表,导出sql脚本,脚本中表的顺序是根据表名的字母顺序排列的,因此这里没有考虑到表之间的关联关系。用PowerDesigner导入该sql脚本,此时生成的数据模型,可能会缺少表之间的关联。
例如,建立数据库dbtest,建表user、表consume。表user是用户的基本信息,consume记录用户的消费情况。生成sql脚本如下:
dbtest.sql
DROP TABLE IF EXISTS `comsume`;
CREATE TABLE `comsume` (
`consume_id` bigint(20) NOT NULL auto_increment COMMENT '消费id',
`consume_user_id` bigint(20) NOT NULL COMMENT '消费用户id,外键,关联user表',
`uses` text COMMENT '用途',
`use_amount` bigint(20) NOT NULL COMMENT '使用预付金额',
`comsume_time` date default NULL COMMENT '消费时间',
PRIMARY KEY (`consume_id`),
KEY `consume_user_id` (`consume_user_id`),
CONSTRAINT `consume_user_id` FOREIGN KEY (`consume_user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL auto_increment COMMENT '用户id,系统生成',
`nickname` varchar(45) NOT NULL COMMENT '昵称',
`username` varchar(45) NOT NULL COMMENT '用户名',
`sex` varchar(10) NOT NULL COMMENT '性别',
`email` varchar(45) NOT NULL COMMENT '邮箱',
`password` varchar(45) NOT NULL COMMENT '密码',
`user_image` blob COMMENT '用户头像',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用PowerDesigner导入该sql语句,具体方法参见上篇blog---PowerDesigner导入SQL生成数据模型
此时,生成的数据模型图如下所示,可见关联关系丢失了。
调整sql脚本,将user和consume的sql语句调换位置,改为如下格式:
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL auto_increment COMMENT '用户id,系统生成',
`nickname` varchar(45) NOT NULL COMMENT '昵称',
`username` varchar(45) NOT NULL COMMENT '用户名',
`sex` varchar(10) NOT NULL COMMENT '性别',
`email` varchar(45) NOT NULL COMMENT '邮箱',
`password` varchar(45) NOT NULL COMMENT '密码',
`user_image` blob COMMENT '用户头像',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `comsume`;
CREATE TABLE `comsume` (
`consume_id` bigint(20) NOT NULL auto_increment COMMENT '消费id',
`consume_user_id` bigint(20) NOT NULL COMMENT '消费用户id,外键,关联user表',
`uses` text COMMENT '用途',
`use_amount` bigint(20) NOT NULL COMMENT '使用预付金额',
`comsume_time` date default NULL COMMENT '消费时间',
PRIMARY KEY (`consume_id`),
KEY `consume_user_id` (`consume_user_id`),
CONSTRAINT `consume_user_id` FOREIGN KEY (`consume_user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
此时用PowerDesigner导入该sql语句,生成的数据模型图就正确了,如下所示,可见关联关系已经用箭头表示出来了。