从0开始快速使用StarUml画ER图,生成SQL建表代码,附解决DDL常见报错方法

使用StarUml画ER图,生成SQL建表代码,解决常见报错

遇到稍微复杂一些的业务,先整理需求在下手会使得开发过程中头发少掉一些,尤其是团队合作的项目效果尤为明显,在整理完业务需求后, 从数据库开始下手能让后端的头发掉少一些. 找个好的软件能在整理数据库的时候再少掉点头发, 并且减轻简单重复的打字工作. 如果图画好了,数据库建表的语句能自动打出来就好了. 诶, 还真有软件可以做到, 而且还容易使用, 这实属是懒人福音,头发的救星啊.

快速开始

在这里假设您了解什么是ER图以及一些相关的知识, 本文将会在两分钟内结合图片介绍StarUml画ER图的方法.

点击链接下载安装StarUml.

有点可惜的是这个软件是收费的, 而且按刀收费, 价格感觉确实有点贵. 不过新用户还是会送一个月免费体验.

//这个软件也挺好破解的,网上很容易找到简单的破解教程,但是最好还是不要这样做.

创建一张ER图

右击右侧菜单栏, 创建ER图,创建完成后左侧会出现图例,在图上放置图例并点击相应的位置,会出现相应位置的编辑栏.

image-20230130002800528

图例简介

image-20230129235936068

如图,使用staruml画图的图例还是很方便的,左边的TOOLBOX包括了这些图例,以及如下图所示注释的工具.

image-20230130000026166

我一般不太用下边的这些,因为还可以在实体里写注释(如下一部分图2所示).

编辑内容

右键添加字段.

image-20230130000736226

点击字段后右边出现字段相关的编辑框

image-20230130001045937

点击实体右侧会出现实体的编辑框, 点击实体内的字段会出现字段的编辑框, 关系的编辑也是同样.

跟所学到的ER图略有不同, staruml提供的只有方形(一般教学的ER图关系会有菱形表示),但拿方形当菱形来用也区别不大,反正最后关系表还是要以数据库表的形式保存嘛.

将ER图生成为建表用的SQL语句.

默认是没有安装插件的, 需要在这里安装插件.

image-20230130002207482

搜索安装后需要重新启动软件(记得保存).

image-20230130002239383

再次点击Tools会出现DDL.

image-20230130002316488

image-20230130002354721

点击相应的模型即可.

image-20230130002413599

保存后到指定位置打开文件即可查看建表的sql语句,可以用软件直接运行,也可以复制粘贴运行,都是可以的.

不过一般第一次操作的适合会出现各种奇奇怪怪的错误,让人很懵逼,于是下边整理了常见的两个错误和解决的办法(非常好解决).

常见错误汇总

  • DDL生成出来包含了一些奇奇怪怪的字段,明明之前已经把字段从图上删掉了

    原因在于字段虽然从图上删掉了,但是没从模型里边删掉,从模型中找到对应的字段右键删除即可.

  • 可能有一些字段可能忘了给属性了,默认会给int类型.

  • 外键参考出现问题

    [HY000] [150] Create table ‘IOT/#sql-4ec8_783cab’ with foreign key constraint failed. There is no index in the referenced table where the referenced columns appear as the first columns.

    出现这个的原因大概是参考的不是主键,或者是参考的键不是唯一的,

    把要参考的键这里勾上,就是唯一的了,不会再出这种问题.

    image-20230129235528866

  • 还有就是表结构的问题.

    很多时候思路并不是很清晰就糊里糊涂的画表了,画完之后DDL出SQL语句运行报错,检查过上述两件错误的时候还可以想一下是不是表结构太烂了导致某些外键违反了外键的原则.

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值