• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

高手都这么设计数据库

技术杂谈 勤劳的小蚂蚁 3个月前 (01-16) 92次浏览 已收录 0个评论 扫描二维码

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

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

软件安装

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

创建对应工程

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

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

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

新建数据库

新建表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 
 
点击 Add Database 
 
这里我们添加一个test 
然后点击数据库连接 
将数据库模型同步到软件中 
 
勾选我们需要同步过来的表 
 
点击Ok 
可以看到之前数据库的表都可以同步到软件当中了。 

设计表结构

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

第一范式:
  • 1、每一列属性都是不可再分的属性值,确保每一列的原子性
  • 2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。
求,否则,将有很多基本操作在这样的关系模式中实现不了。 

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

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

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

提交表结构到数据库

重头戏来了,我们当然希望我们在软件中设计的数据库表结构很方便的同步到数据库里面去,可以进行如下操作。 
点击Database->Geberate Database 
 
选择菜单栏Selection,勾选需要同步到数据库的表,点击确定 
 
这时会有一个展示sql的界面 
从图中sql可以看到,在同步之前会先删除相关表再进行创建,所以会清数据,这点大家需要注意下。 
点击Run,执行成功。此时回过头去看我们的数据库,表结构都生成完毕,大功告成! 
总结
数据库设计适合才是王道,如果你有更好的方式或工具也欢迎推荐,本文只是抛砖引玉,讲解不是特别深入,比如更多的属性设置和个性化设置大家可自行探索。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:高手都这么设计数据库
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00