- 10
- 0
- 约4.15千字
- 约 3页
- 2023-06-22 发布于上海
- 举报
数据库设计步骤、基本原则、思路及技巧
⼀、数据库设计的基本步骤:
1.了解业务场景及功能需求;
2.根据需求抽取实体对象、关系,然后分析细化对象的⾏为;
3.绘制E-R图;
4.E-R图转换成模型(粗表);
5.⽤三范式优化模型,根据表关系、⾏为、规则细化拆分粗表;
6.数据库建表;
⼆、数据库设计的基本原则:
1.先⾯向对象,把对象及属性列全了,再考虑⾯向过程。先列实体,再列实体间的关系,再细化关系;
2.⼀定要结合业务需求考虑表依赖关系,主外键关系不能混乱或者弄反,尽量考虑表之间关系是不是存在1:N的情况;
3.表关系为1:N的,N⽅要有1⽅的主键字段作为外键;
4.表关系存在N:N的时候⼀定要加⼊中间表做成N:1:N;
库设计:
1、数据库名称要明确,可以加前缀或后缀的⽅式,使其看起来有业务含义,⽐如数据库名称可以为Business_DB(业务数据库)。
2、在⼀个企业中,如果依赖很多产品,但是每个产品都使⽤同⼀套⽤户,那么应该将⽤户单独构建⼀个库,叫做企业⽤户中⼼。
3、不同类型的数据应该分开管理,例如,财务数据库,业务数据库等。
4、由于存储过程在不同的数据库中,⽀持⽅式不⼀样,因此不建议过多使⽤和使⽤复杂的存储过程。为数据库服务器降低压⼒,不要让数
据库处理过多的业务逻辑,将业务逻辑处理放到应⽤程序中。
表设计:
1、 数据库表命名,将业务和基础表区分,采⽤驼峰表⽰法等。
2、 数据不要物理删除,应该加⼀个标志位,以防⽤户后悔时,能够恢复。还有就是⽐如⼈员登记加⼊某系统,采⽤登记卡的⽅式,⼀段
时间后该⼈员退出了该系统,那么此时我们将该⼈员对应的记录标记为不可⽤,那么这个⼈就从系统中移除了,⼀段时间后这个⼈⼜回来
了,那么我们直接修改标记字段为可⽤,这个⼈就从新加⼊系统,避免了其它信息的录⼊。
3、 数据是否有效的标⽰字段,其作⽤为:例如某条记录只有经过某个流程或者被某个⼈员审核通过后才有⽤,在这之前⼀直没有⽤。
4、 排序字段,按照某种类型来排序 (sortcode)最好不依赖id排序,这样⽅便我们查询记录时按照某种⽅式排序,⽽不依赖id。
5、 数据是否允许删除和允许编辑,例如管理员不能删除,这样我们在查询数据时就可以根据该字段标⽰来决定某条记录是否可以编辑。
⽽不⽤固化到代码中。
6、 增加备注字段,虽然我们考虑了很多⽤户需要输⼊信息的需求,但是⽆论何时我们都不可能考虑全,因此可以定义⼀个备注字段,允
许⽤户将其它的信息填写在这⾥。⽆论表设计的再神奇,那么还是加⼀个备注字段。
7、 将记录创建⼈Id和记录创建⼈名字做为字段,这样看起来或许感到冗余有了Id还要名字⼲什么,使⽤住外键关联不就可以了吗,但是我
们可以这样思考,如果只使⽤名字,那么⼈多了免不了名字重复,只使⽤id当然没有问题,但是我们查询时为了知道创建者的⼈名需要关联
查询另外⼀张表,性能上不好,⽽且数据库看起来不是那么⼀⽬了然。并且创建⼈的名字也不是经常修改的。
8、 添加时间,有添加时间可以明确知道记录什么时候添加的。
9、 修改时间,可以知道记录什么时候被修改了,⼀旦数据出现问题,可以根据修改时间来定位问题。⽐如某⼈在这个时间做了哪些事。
10、修改⼈id和名字,其作⽤就是标记谁对记录做了修改
11、最后修改⼈
12、最后修改时间
13、记录所属公司id,⽅便我们查询只属于某个公司的记录
14、记录所属部门id,⽅便我们查询只属于某个部门的记录
15、记录所属⼯作组id,⽅便我们查询只属于某个⼯作组的记录
16、基本表及其字段之间的关系, 应尽量满⾜第三范式。但是,满⾜第三范式的数据库设计,往往不是最好的设计。为了提⾼数据库的运⾏
效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的⽬的。
17、若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来⼀个多对多的关
系,现在变为两个⼀对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这⾥的第三个实体,实质上是⼀个较复杂的关系,
它对应⼀张基本表。⼀般来讲,数据库设计⼯具不能识别多对多的关系,但能处理多对多的关系。
18、 主键PK的取值⽅法,PK是供程序员使⽤的表间连接⼯具,可以是⼀⽆物理意义的数字串, 由程序⾃动加1来实现。也可以是有物理意
义的字段名或字段名的组合。不过前者⽐后者好。当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占⽤空间⼤,⽽且速
度也慢。
19、主键与外键在多表中的重复出现, 不属于数据冗余,这个概念必须清楚,事实上有许多⼈还不清楚。⾮键字段的重复出现, 才是数据
您可能关注的文档
- 光伏电站基础知识总结——接入系统.pdf
- 小班健康教案20篇桌面游戏.pdf
- 商务俄语等级考试中级认证考试大纲.pdf
- 初一配套练习册数学答案青岛版【四篇】.pdf
- 大五人格测试量表.pdf
- 官方!2019武汉各批次高中名单及招生计划,又生变化!.pdf
- 实验八分光光度法测定铁.pdf
- 情况说明(模板).pdf
- 地面沉降监测网络及其规划.pdf
- 分栏、首字下沉、边框底纹设置.pdf
- 2025-2026学年八年级语文数学等各学科第一学期期末考试试题以及答案.docx
- 2025年九年级中考英语三模考试试题(含答案).docx
- 2026海南海口市纪委监委所属事业单位招聘4人备考题库(第一号)带答案详解(实用).docx
- 2026浙江宁波海发渔业科技有限公司招聘1人备考题库及答案详解一套.docx
- 2026湖北事业单位联考天门市招聘248人备考题库附答案详解(满分必刷).docx
- 2026湖北事业单位联考荆州区招聘123人备考题库及答案详解(典优).docx
- 2026河南郑州黄河交通学院人才招聘24人备考题库含答案详解(夺分金卷).docx
- 2026浙江金华浙农科(武义)农业产业发展研究院有限公司招聘1人备考题库及答案详解(各地真题).docx
- 2026河南省科学院激光制造研究所招聘20人备考题库含答案详解(综合卷).docx
- 2026浙江温州市生态环境局编外工作人员招聘1人备考题库带答案详解(培优b卷).docx
最近下载
- 基于IEEE1394b协议的链路核设计与实现-软件工程专业论文.docx VIP
- 毕业设计:220kv单回路架空输电线路说明书.doc VIP
- 奥的斯电梯无机房ACD4 MRL 电气原理图纸DAA21310CQ.pdf
- ISO37301:2021合规管理体系制度文件一整套.doc VIP
- 基于IEEE 1394b的SerDes芯片数字电路设计与实现-通信与信息系统专业论文.docx VIP
- 基于arm9的高速缓存和内存管理单元的电路设计与实现-通信与信息系统专业论文.docx VIP
- 2025光伏清扫机器人应用白皮书:组件-支架-机器人智能化协同.pdf
- 火焰之纹章之纹章之谜完整攻略.doc VIP
- 固定资产管理员岗位面试问题及答案.docx VIP
- 2026福建厦门市人工智能创新中心招聘42人备考题库及答案详解(易错题).docx VIP
原创力文档

文档评论(0)