[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语句,生成的数据模型图就正确了,如下所示,可见关联关系已经用箭头表示出来了。
- 大小: 22.1 KB
- 大小: 17.6 KB
分享到:
相关推荐
SQLServer脚本批量执行工具是一种高效管理SQL Server数据库的实用程序,它允许用户一次性执行多个SQL脚本,显著提高了数据库管理员的工作效率。该工具的主要功能包括脚本的顺序执行、执行结果的记录以及脚本的可视化...
这个工具允许用户将数据库中的表数据快速、便捷地转化为SQL脚本,这对于备份、迁移、测试或者数据恢复等场景非常实用。 首先,我们要理解SQL脚本是什么。SQL(Structured Query Language)脚本是一种用文本格式存储...
通过“SQL脚本文件合并工具”,我们可以将分散的SQL脚本整合到一起,形成一个大的SQL脚本文件,这样在SQL*Plus中只需要运行一次,就能完成所有脚本的执行,避免了反复打开、执行单个文件的繁琐步骤。 合并过程可能...
数据库中的数据导出为SQL脚本是一项常见的数据库管理和迁移任务,尤其在系统迁移、备份或复制数据场景下显得尤为重要。本文将深入探讨如何将数据库中的数据导出为SQL脚本,以及涉及的相关技术。 首先,我们需要理解...
批量执行SQL脚本是数据库管理中的常见需求,它简化了数据库维护,提升了效率,同时也需要我们关注其可能带来的风险,并采取相应的安全措施。通过熟练掌握上述知识点,你可以更高效地处理大数据操作和自动化任务。
这些SQL脚本的目的是确保jbpm在多种常见的关系型数据库(MySQL、Microsoft SQL Server、Sybase、Oracle和IBM DB2)中能够正确地安装和运行。 1. **jbpm.jpdl.mysql.sql**:这是针对MySQL数据库的脚本,包含了创建...
nacos2.0.2版本依赖数据库sql脚本
SQL脚本生成工具可以比较不同数据库之间的差异,生成用于同步的SQL脚本,从而消除结构不匹配的问题。这在多团队协作的项目中尤其重要,能避免因结构不一致导致的错误和冲突。 此外,数据库版本控制也是此类工具的...
在IT行业中,数据库管理是至关重要的任务之一,而将数据库中的表导出为SQL脚本是一种常见的操作。这个过程能够帮助我们备份数据、迁移数据库、版本控制或在不同环境中重现数据结构。标题“超好的导出数据库表为SQL...
SQL脚本通常是一系列按照特定顺序执行的SQL语句,用以完成特定的数据库任务。 批量执行SQL脚本在许多场景下非常有用。例如,在应用程序部署过程中,可能需要创建和初始化数据库表,或者在数据迁移时更新现有表结构...
基于案例学SQL优化第1周脚本 表的连接顺序.sql
- **生成和执行脚本**:最后,工具会生成SQL Server兼容的创建数据库、表、索引、视图、存储过程等的脚本,这些脚本在SQL Server上执行以重建数据库结构。 5. **数据迁移**:除了结构转换,还需要将MySQL中的数据...
Oracle SQL脚本书写规范是确保代码可读性、性能优化以及团队协作的重要准则。遵循这些规范可以帮助初学者更好地理解和编写高效的SQL查询,避免不必要的错误,提高开发效率。以下是一些关键的Oracle SQL书写规范: *...
1. **批量执行**:这个工具的核心功能就是能够一次性处理多个SQL脚本文件,这对于需要对一系列数据库操作进行批量处理的情况非常有用,如数据迁移、表结构更新或数据清理等。 2. **跨平台兼容**:SqlScriptHelper的...
以上介绍了关于SQL脚本优化的一些基本方法和技术要点,包括但不限于查询顺序的优化、WHERE子句的使用技巧、避免使用SELECT *、减少不必要的数据库调用、使用特定工具进行性能调优、利用ROWID进行删除操作、TRUNCATE...
编写SQL脚本可以实现创建表、插入数据、更新记录、删除数据以及执行复杂的查询和事务操作等任务。然而,当需要对多个数据库进行相同或类似的操作时,逐个手动执行这些脚本会变得极其耗时且容易出错。因此,SQL脚本...
在这个"Oracle SQL常用脚本"的资源中,我们重点探讨四个关键知识点:创建表空间、创建用户、理解执行计划以及外连接和全连接。 首先,让我们讨论创建表空间。在Oracle数据库系统中,表空间是存储数据的主要单位。...
SQL脚本是一系列按照特定顺序执行的SQL命令,可以用于创建、修改、查询或操作数据库对象,如表、视图、索引等。 3. **数据表及其数据的脚本生成**: 这个工具能够生成数据库中每个表的CREATE TABLE语句,这包括表的...
根据给定的信息,本文将详细解释“SQL脚本函数 36进制转换为10进制”的实现原理与具体步骤。此SQL脚本函数的主要功能是将36进制数值转换为十进制数值。 ### 一、理解36进制 在计算机科学中,我们通常使用的是十...
在实际应用中,结合这些脚本和工具,并结合业务需求和系统状况,可以针对性地优化SQL,提升Oracle数据库的运行效率。记得在应用任何优化措施之前,都要先进行充分的测试,确保优化效果的同时,避免可能的副作用。