推荐一款开源数据库设计工具,比PowerDesigner更好用!

最近有个新项目刚过完需求,正式进入数据库表结构设计阶段,公司规定统一用数据建模工具 PowerDesigner。但我并不是太爱用这个工具,因为它的功能实在是太多了,显得很臃肿繁琐,而平时设计表用的也就那么几个功能。

这里找到一个好用的工具,马不停蹄的分享给大家,PDMan一款国产开源的数据库模型建模工具,它的功能PowerDesigner 均已经实现,但相比于笨重的PowerDesigner来说。PDMan 专门用于数据表的设计,界面更加清爽漂亮,功能也十分简洁,没多余的设置很容易上手,还提供了 WindowsMacLinux 三个平台版本。

PDMan保存的是一个JSON文件,使用前得先做点准备工作,配置一下 JDKMySQL 连接,后边的功能会用到。

下边我们来逐一过下PDMan 的功能点。

生成数据库文档

PDMan 支持一键导出数据表结构的DDL执行脚本,JSON格式数据,还有数据库表结构文档,其中数据库文档又可以生成 htmlwordmarkdown 三种格式,文档内容包括各个表的字段属性,数据表间的关系图。

html 格式

表目录
表关系图
表列清单

word 格式

word 格式

markdown 格式

markdown 格式

数据库逆向解析

前边我们已经配置了数据库信息,这里直接将已有数据库中的数据表,逆向生成表结构,和数据表间的关系图。

版本控制

PDMan 可以控制每次修改的版本,对任意版本间的修改进行比对,和Git的版本控制类似。

全局配置

设置表结构的全局通用字段属性,通常在建表的时候,每个表都会有像创建时间 create_time、更新时间update_time、删除标记delete_flag、乐观锁revision这类字段,这样设置完以后在建表时会自动生成。

还可以自定义数据类型,比如:字符型可以自定义 varchar(10)varchar(20)varchar(30),建字段时直接选择对应数据类型即可,一劳永逸。

PDMan整体功能非常的简洁,不过也足以应对日常开发中数据库设计需求了。

产品特点

下载地址:http://www.pdman.cn/

PS:各位大佬还有更好用的工具推荐吗?欢迎评论区留言补充.


往期推荐

SpringBoot集成Google开源图片处理框架,贼好用!


MySQL为Null会导致5个问题,个个致命!


编程中的21个坑,你占几个?


关注我,每天陪你进步一点点!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cocos2d-x lua 学习笔记(1) -- 环境搭建

Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷!OK,现在就开始搭建环境吧&#xf…

rotateleft_Java Integer类rotateLeft()方法与示例

rotateleft整数类rotateLeft()方法 (Integer class rotateLeft() method) rotateLeft() method is available in java.lang package. rotationLeft()方法在java.lang包中可用。 rotateLeft() method is used to returns the value generated by rotating the binary 2s complem…

ORACLE删除当前用户下所有的表的方法

1、如果有删除用户的权限,则可以: drop user user_name cascade; 加了cascade就可以把用户连带的数据全部删掉。 删除后再创建该用户。 --创建管理员用户 create user 用户名 identified by 密码 default tablespace space_data(表空间名称…

Socket粘包问题的3种解决方案,最后一种最完美!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)在 Java 语言中,传统的 Socket 编程分为两种实现方式,这两种实现方式也对应着两种不同的传输层协议…

【万里征程——Windows App开发】控件大集合1

添加控件的方式有多种,大家更喜欢哪一种呢? 1)使用诸如 Blend for Visual Studio 或 Microsoft Visual Studio XAML 设计器的设计工具。 2)在 Visual Studio XAML 编辑器中将控件添加到 XAML 标记中。 3)在代码中添…

Java Collections BinarySearch()方法与示例

集合类binarySearch()方法 (Collections Class binarySearch() method) Syntax: 句法: public static int binarySearch(List l, Type key_ele);public static int binarySearch(List l, Type key_ele, Comparator com);binarySearch() method is available in jav…

从String中移除空白字符的多种方式!?差别竟然这么大!

字符串,是Java中最常用的一个数据类型了。我们在日常开发时候会经常使用字符串做很多的操作。比如字符串的拼接、截断、替换等。这一篇文章,我们介绍一个比较常见又容易被忽略的一个操作,那就是移除字符串中的空格。其实,在Java中…

[JS][jQuery]清空元素html()、innerHTML= 与 empty()的区别 、remove()区别

清空元素html("")、innerHTML"" 与 empty()的区别 一、清空元素的区别 1、错误做法一: $("#test").html("");//该做法会导致内存泄露 2、错误做法二:$("#test")[0].innerHTML"&qu…

Properties文件位置

这种情况下Properties文件放在和‘当前类’同一目录下 <span style"font-size:14px;">Properties p new Properties(); InputStream in 当前类.class.getResourceAsStream("Properties文件名"); p.load(in); </span> 这种情况下Prop…

Java类class isAnnotation()方法及示例

类的类isAnnotation()方法 (Class class isAnnotation() method) isAnnotation() method is available in java.lang package. isAnnotation()方法在java.lang包中可用。 isAnnotation() method is used to check whether this Class object represents the annotation type or…

不要再用main方法测试代码性能了,用这款JDK自带工具

前言作为软件开发人员&#xff0c;我们通常会写一些测试程序用来对比不同算法、不同工具的性能问题。而最常见的做法是写一个main方法&#xff0c;构造模拟场景进行并发测试。如果细心的朋友可能已经发现&#xff0c;每次测试结果误差很大&#xff0c;有时候测试出的结果甚至与…

读书总结:周鸿祎,我的互联网方法论

目录&#xff1a;1、欢迎来到互联网时代2、互联网用户至上3、颠覆式创新4、免费时代5、体验为王6、互联网方法论第一章&#xff1a;互联网时代1、没人能打败趋势&#xff0c;趋势会导致非线性发展。2、信息的流通变快&#xff0c;商家很难利用非对称性赚钱。3、用户的体验最重要…

Java ClassLoader getResources()方法与示例

ClassLoader类的getResources()方法 (ClassLoader Class getResources() method) getResources() method is available in java.lang package. getResources()方法在java.lang包中可用。 getResources() method is used to identify all the resources with the given resource…

Java中Properties类的操作

http://www.cnblogs.com/bakari/p/3562244.html Java中Properties类的操作 知识学而不用&#xff0c;就等于没用&#xff0c;到真正用到的时候还得重新再学。最近在看几款开源模拟器的源码&#xff0c;里面涉及到了很多关于Properties类的引用&#xff0c;由于Java已经好久没用…

复盘线上的一次OOM和性能优化!

来源&#xff1a;r6d.cn/ZazN上周五&#xff0c;发布前一周的服务器小动荡????事情回顾上周五&#xff0c;通过Grafana监控&#xff0c;线上环境突然出现CPU和内存飙升的情况&#xff1a;但是看到网络输入和输入流量都不是很高&#xff0c;所以网站被别人攻击的概率不高&am…

scanf 输入十六进制_在C语言中使用scanf()输入一个十六进制值

scanf 输入十六进制Here, we have to declare an unsigned int variable and input a value in hexadecimal format. 在这里&#xff0c;我们必须声明一个无符号的int变量&#xff0c;并以十六进制格式输入一个值。 To input a value in hexadecimal format – we use "%…

阅读源码的 4 个绝技,我必须分享给你!

为什么要阅读源码&#xff1f;1.在通用型基础技术中提高技术能力在 JAVA 领域中包含 JAVA 集合、Java并发(JUC)等&#xff0c; 它们是项目中使用的高频技术&#xff0c;在各种复杂的场景中选用合适的数据结构、线程并发模型&#xff0c;合理控制锁粒度等都能显著提高应用程序的…

微信公众号开发 ssl connect error

微信获取公众号授权失败 &#xff1a;ssl connect error 本人用的是微擎&#xff0c;也是刚入手&#xff0c;碰到这个问题感觉很棘手。 通过一步步调试发现问题出在curl 认证这里&#xff0c;得到结果错误代码&#xff1a;35&#xff0c;错误信息就是&#xff1a;ssl connect …

struts2的java.lang.NoSuchMethodException异常处理

不久前在学习struts时出现这个错误&#xff0c;在网上搜索了半天&#xff0c;发现答案不一。将其总结如下&#xff0c;以方便大家参考。 1、 你有没有试试看 其它的方法能不能用&#xff0c;要是都是这种情况的话&#xff0c;可能是你的Action类没有继承structs里面的DispatchA…

Java String indexOf(int ch)方法与示例

字符串indexOf(int ch)方法 (String indexOf(int ch) Method) indexOf(int ch) is a String method in Java and it is used to get the index of a specified character in the string. indexOf(int ch)是Java中的String方法&#xff0c;用于获取字符串中指定字符的索引。 If…