高手都这么设计数据库

只要你在做后端,数据库这块就绕不过去,根据业务和系统架构进行表设计也是我们经常需要做的工作,但是没有好的工具,对于一些数据表比较多大系统来说,很难维护,同样为了大家能有好的数据库设计体验,我今天简单谈谈如何使用数据库设计工具powerdesigner,看看它能解决我们日常中的哪些问题


目录结构
软件安装
创建对应工程
连接数据库实例并同步表结构
设计表结构
提交表结构到数据库


软件安装

安装这块没什么好说的,略过。大家自行百度即可。

创建对应工程

打开软件,创建Model 
640 
选择Physical Diagram ,DBMS选择mysql 
640
点击确认后的界面长这样: 
640

连接数据库实例并同步表结构

作为一个数据库表设计工具,我们想在工具里更改或者创建表都能实时同步到我们的数据库实例,也有一个需求是在原来的数据库模型基础上修改或添加。

新建数据库

640

新建表user

 
 
  1. CREATE TABLE `user` (

  2.  `id` int(11) NOT NULL AUTO_INCREMENT,

  3.  `name` varchar(128) DEFAULT NULL,

  4.  PRIMARY KEY (`id`)

  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

做完以上步骤我们使用powerdesigner连接数据库并逆向工程 
点击菜单栏-Database-Configure Connections 
640 
点击 Add Database 
640 
这里我们添加一个test 
640

然后点击数据库连接 
640

640

将数据库模型同步到软件中 
640 
勾选我们需要同步过来的表 
640 
点击Ok 
可以看到之前数据库的表都可以同步到软件当中了。 
640

设计表结构

上一步我们通过软件连接了mysql数据库并同步表结构,那么我们可以开始进行表结构设计了,当然不能盲目的设计,建议大家参考数据库设计三大范式。 
什么是三大范式: 


第一范式:

  • 1、每一列属性都是不可再分的属性值,确保每一列的原子性

  • 2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。

求,否则,将有很多基本操作在这样的关系模式中实现不了。 


第二范式:每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。 


第三范式:数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。像:a-->b-->c 属性之间含有这样的关系,是不符合第三范式的。 

这里演示通过软件进行表创建。点击右侧栏的Table按钮,在项目中空白处单击即可。我们可以基于这个空白表进行可视化设计。 
640 
假设我们创建一个用户扩展表user_detail,可简单设计如下 
640

提交表结构到数据库

重头戏来了,我们当然希望我们在软件中设计的数据库表结构很方便的同步到数据库里面去,可以进行如下操作。 
点击Database->Geberate Database 
640 
选择菜单栏Selection,勾选需要同步到数据库的表,点击确定 
640 
这时会有一个展示sql的界面 
640
从图中sql可以看到,在同步之前会先删除相关表再进行创建,所以会清数据,这点大家需要注意下。 
点击Run,执行成功。此时回过头去看我们的数据库,表结构都生成完毕,大功告成! 
640

总结

数据库设计适合才是王道,如果你有更好的方式或工具也欢迎推荐,本文只是抛砖引玉,讲解不是特别深入,比如更多的属性设置和个性化设置大家可自行探索。

推荐阅读

Transaction 那点事儿

价值一个亿的AI核心代码!

MySql数据库优化注意的四个细节(方法)


640?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值