随着大大小小也算经历过不少公司,说实话,感觉很多公司对于项目的管理都做的很烂。例如表设计、需求管理、接口文档等常规的,基本很多公司都不会有,都是已有员工告知新员工。先说表设计,好多公司都是需要那个表,就让开发的人直接就建表了,反正也没有管建立的表设计怎么样,只需要能实现项目的需求就行。
这样带来的问题就是:
- 表设计的极度不合理,导致需求开发复杂;
- 后期项目表管理难度增大,过多无用表和无用字段;
- 加大后续入职员工对项目的接手难度;
所以强烈安利大家使用数据库表设计工具,无论是自己练习项目,还是进行公司项目开发,有份数据库设计文档都是让你更加理解项目和进行项目开发。
目前市面上有很多相关的的数据库表设计工具,例如:PowerDesigner、PDMan(国内开源的)、navicat data modeler;
个人从事的公司是使用的PowerDesigner,下面就大致讲解下该工具的使用。
一、Power Designer是什么?
Power Designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具。使用它可以分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。
二、使用步骤
1、安装软件
2、创建模型
a、打开PowerDesigner,会弹出如下弹框(如果没有弹框,可以选择左上角菜单栏 File -> New Model):
b、点击Create Model后,会进入到如下界面,进行模型的类型选择,这里我们选择Physical Data Model,填写其他信息后点击OK:
说明:常用数据模型
- 概念模型(CDM Conceptual Data Model)
- 物理模型(PDM,Physical Data Model)
- 面向对象的模型(OOM Objcet Oriented Model)
- 业务模型(BPM Business Process Model)
进行数据库进行表设计,常用的是概念模型和物理模型,比较直观的讲解就是:概念模型就是脱离具体的数据库,单从业务上进行表设计,设计好模型后可以再导出为 各种数据库的物理数据模型,项目决定使用哪种数据库就导出那种数据库的物理数据模型。按理来说,先进行概念模型设计,然后导出具体的物理数据模型进行表生成,是最优的设计流程,特别是可能涉及到项目会进行数据库切换的需求(mysql->oracle),切换会变得相对容易。但是一般项目基本上都不会涉及到数据库种类的切换,同时概念设计时,数据库字段的类型相对抽象,在生成具体的物理数据模型时,字段类型转换为具体的物理数据模型时,生成的物理数据模型的表会出现字段不是自己想要的数据类型,从而还是要修改生成的物理数据类型表;而物理数据类型,就是先选择你项目使用的数据库种类,从而数据库表设计时,就是单一为这种数据库种类设计的,这样的好处是,设计较快,且字段类型相对清晰。 大多数情况下,选择物理数据模型就可以了。(这段话可以后面理解)
c、接下来进入到物理弹窗界面,就是具体要进行数据库表建模的界面,大致如下:
3、表建模
a、双击弹窗里的初始表(Table_n),进入如下界面,进行在General,视窗进行表名相关设计:
设计好之后的效果是 》》》
b、在表设计界面,点击Columns,在视窗中进行表的字段设计:
在视窗中,有这些字段进行设计:
- Name(字段名:中文)
- Code(字段编码:英文)
- Data Type(字段类型)
- Length(长度,需要定义长度的字段类型,在选择Data Type的时候,就需要指定字段长度,这里只是展示,无须操作,例如varchar、decimal等类型的字段)
- Precision(精度,需要定义精度的字段类型,在选择Data Type的时候,就需要指定字段精度,这里只是展示,无须操作,例如decimal等类型的字段)
- Primary(是否主键,是主键勾选)
- Foreign Key(是否外键,这个是设计表关联时,会自动选择,无须操作)
- Mantory(是否强制,理解就是非空约束)
设计好之后的效果是 》》》
c、表字段详细设计,添加好字段,点击应用之后,可以鼠标移动到字段最左边的序号位置(鼠标指针会变),双击就可以进入字段的属性设置视窗
基本有如下一些信息存在修改:
d、添加表索引设计,唯一性索引建议必添加
e、添加表之间的外键约束,建议不用设计,建议使用在程序层进行处理(使用JPA,Hibernate必添加,略)
4、导出建表语句
a、获取全部建表语句(第一次生成表)
菜单栏 Database -> Generate Database...
b、单表建表语句(项目后续需求增加)
双击数据表,在Preview视窗中进行语句拷贝执行
总结
后续再总结