博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
001-数据库设计问题
阅读量:4694 次
发布时间:2019-06-09

本文共 707 字,大约阅读时间需要 2 分钟。

如何设计一张表?

1、一张表必须有哪些字段?这些字段的作用是什么?必须加上create_time创建时间且添加上索引,modify_time修改时间,remark备注,这三个字段放在最后。如果是后台系统,还需要添加上operator操作人和operate_time 操作时间。

2、字段是否全面?没有该字段会有什么问题?比如订单表,如果没有区分该订单来自app还是web,那么你就无法统计订单来自app和web的情况。

3、字段冗余问题。该冗余的就要冗余,什么是该冗余呢?就是查询性能要求高而数据改动小的那些表,尽可能避免多表连接查询,冗余都是为了解决数据库的性能限制。优点是方便数据的查询统计,因此尽可能减少冗表的冗余字段的更新和删除操作,一个字段冗余得越多,那么该字段修改或删除的代价越大。缺点是,数据一致性维护成本高,需要维护冗余字段的一致性,如果有很多很多张表都携有冗余字段,不仅会使数据库性能降低还会带来数据不一致等一系列问题。如果参照三范式,那我们在设计数据库的时候就必须致力于消灭冗余字段,毕竟如果我们需要更新某条记录,而这条记录又恰好包含了冗余字段,那么我就必须更新所有携有冗余字段的表。如果冗余冗余字段只出现在很少的表中那么这不算什么大问题。以空间换时间的目的

4、字段值不要有null值,建议建表时要default 一个默认值。即加上not null约束,同时给一个default默认值。

5、每个表必须有一个是否启动的字段,该字段用来标识一条记录是否可用/是否作废,但是不想删除该记录。

转载于:https://www.cnblogs.com/igoodful/p/9121951.html

你可能感兴趣的文章
装饰器
查看>>
bzoj 5090 组题
查看>>
SQL 多条记录分组合成一条数据
查看>>
IBM messed up *AGAIN* in their thinkpad: 0xA0000 -> 0x9F000
查看>>
python 两个文件夹里的文件名对比
查看>>
vc++2010如何新建项目并在控制台打印helloworld
查看>>
腾讯云centos7.2安装jdk1.7 tomcat7.0部署项目示例
查看>>
二叉树的层次遍历
查看>>
Java之IO流
查看>>
web service 部署
查看>>
CSS padding 属性
查看>>
Windows7 Questions
查看>>
数据库迁移工具
查看>>
不使用中间变量交换两个变量的值
查看>>
Mysql导入sql文件
查看>>
大道至简:软件工程实践者的思想——第六章感想 从编程到工程
查看>>
SharePoint 2010版本表
查看>>
【BootStrap】初步教程
查看>>
CSS3 Media Queries 详细介绍与使用方法[转]
查看>>
ASP.NET Web API编程——版本控制
查看>>