赞
踩
用它可以画出表与表之间的关系,详细的介绍。如果布置开发任务,可以看图说话,比打开表一个个的看要好给人叙述。对吧?
要谈数据库性能—直接和数据库设计挂钩;
如果不合理-----后续的开发,升级的时候,完全去开不下去;
关系型数据库:存储信息+描述关系;
PowerDesigner+Microsoft SQL Server Management Studio 18 2012以上;
设计
范式:建议、不是说绝对的要遵循
a. 第一范式:
一范式:每一个列都保持原子性,不可分割;
从表字段的角度来说讲:用户----多个电话:座机、手机号码1、手机号码2
UserInfo-----Detail(JSON格式的字符串----这个用户的所有信息)------查询快—更新慢
从字段的角度来谈单一职责,一个列只存储一个信息—可以来3个字段
优点:更新的时候快,查询也不影响
缺点:部分场景更新成本比较高
b.第二范式:
二范式:在第一范式的基础上,每一列和主键相关; 要求要有主键
Class–班级 一个列存储班级,一个列存储学生
Student —学生,
【不推荐】 都存储一个表,一个字段表示班级,另一个字段表示学员;
推荐使用多个表来存储,学员一个表,班级一个表;主外键的关系来关联;
从每一条记录(对象)的角度来谈单一职责;
c.第三范式:
三范式:每一列的跟主键直接相关,而不是简介相关
公司—用户
CompanyInfo
UserInfo ----UserId,UserName,CompanyInfoId,CompanyName(冗余字段)
冗余字段:查询很便捷(查询到用户就能知道是哪个公司),更新不方便(定时作业,更新时候
去维护冗余字段);
在违反这个三大范式的时候回带来方便;主要根据项目的实际情况;
PS:如果数据库主键ID要往其它库同步的时候,可以通过去掉主键,更新完后再把主键加上。或者进行查询更新。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。