数据库设计 -- 字段的选择
为什么要注意字段的选择?
在数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。在数据量特别大的情况下,这样的设计原理将会使数据库空间造成严重的浪费,也会对数据库的执行效率造成很大的影响。所以我们在做数据库设计的时候要谨慎再谨慎、小心再小心。
常用的数据类型
int、float、double、 decimal、varchar、char、 date、datetime等八种常用的类型。
字符串
- 当数据存储的是字符,且长度是一个固定区间定值的话就可以考虑使用char来进行存储.
- 当字符长度是未知的且长度变化特别明显的话,这个时候最好使用varchar来存储。
但是不管使用的是哪种字段来进行存储,都不要把字段的初始长度设置为最大化,应该是根据业务需求来存储最合适的长度字段。
整型
可以根据需求,选择下面的数据类型:
- bigint :从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。
- int :从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。
- smallint :从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。
- tinyint :从 0 到 255 的整型数据。存储大小为 1 字节。
数据库设计过程中尽量使用int来作为字段类型,因为在所有的数据类型中int不管是存储空间还是执行速度方面都是最好的。例如:如果业务中存储的都是数据的话而且长度不是特别长的话,就可以考虑使用int来进行存储,或者业务中要对数据进行排序的时候需要使用某一标识权重之类的,也可以使用int来进行存储。但是不要因为int高效,而有意识的把所有字段都设计成int来处理,最终还是要根据业务的具体需求来设计相应的字段。
bit
只存储一位的数组,通常用于存储状态,active\inactive,is_deleted
浮点型
- float(N):当你给定的数据是整数的时候,那么它就以整数给你处理。
- double(N):无论何时都以小数处理,default值为:0.00而实际存储是0,同样我存取货币为12.00,实际存储是12。
- decimal(N,M):N是总长度,M是小数点后位数,多则截断,少则补0
在涉及到金额的时候如果对精度要求不高的情况下可以优先使用float,其次是使用double来进存储。如果对精度要求比较高的情况下最好使用decimal来存储,但是相应的它 的效率没有float和double那么高效。具体使用哪种还是要根据业务的具体需求来选择。
时间类型
关于date和datetime的用法,就要看你想要存储时间的精确值了,如果仅仅是想要精确到天的话使用date就可以了,如要要精确到秒一级别的就要使用datetime了。有时候大家使用datetime的使用却只是存储到天的日期单位时,这个时候就会自动添加00:00:00在数据的后面,作为秒一级别的数据。
问题
int(5)和int(10)的区别是什么?
其实5和10其实只是显示长度的区别而已,也就是不管int(x)x的值是什么值,存储数字的取值范围还是int本身数据类型的取值范围,x只是数据显示的长度而已。当然,存储数据超出这个长度,还是会报错。
varchar(10)和char(10)的差别是什么?
在MYSQL5,5以后,varchar(x)x中范其实是存储字段的长度范围,就是一个字符代表一个长度,不管这个字符是汉子还是字符都算是一个长度单位。varchar虽然设置长度值,可是因为varchar是可变的长度类型,也就是当存储的长度小于x时候,其实实际的存储空间不是x而是实际存储的字符长度+一些标示空间。当然如果超过x的长度的话还是会报错的。而char(y)中y的值就是存储空间实际的存储长度,超过这个长度的话就会报错。
必要字段
id,created_time,created_by,updated_time,updated_by,is_deleted
相关推荐
第4章 数据库设计 习题 一、选择题 1.在数据库设计中,用E- R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的( )阶段。 A.需求分析 B.概念设计 C.逻辑设计 D.物理设计 2.在关系数据库设计...
数据库设计-------小型超市管理系统 班 级:06网络技术3班 姓 名:XX 指导老师:XXX 摘 要 小型超市管理系统在现代社会中的应用十分广泛,是一个典型的信息管理系统(MIS) 。本课程设计采用了结构化和面向对象两种...
股票模拟系统数据库e-r图-----包括详细的字段设计等信息
Educoder数据库设计-博客系统 第 第1关:数据库表设计 关:数据库表设计 - ⽤户信息表 ⽤户信息表 任务描述 本关任务:创建博客系统数据库的⽤户信息表。 相关知识 数据库整体设计 ⼀个博客系统会有哪些功能呢,肯定...
数据库设计规范-编码规范 数据库设计规范-编码规范全文共25页,当前为第1页。数据库设计规范-编码规范全文共25页,当前为第1页。数据库编码规范 数据库设计规范-编码规范全文共25页,当前为第1页。 数据库设计规范-...
考试系统mysql数据库设计_在线考试系统数据库设计(表) 《在线考试系统数据库设计(表)》由会员分享,可在线阅读,更多相关《在线考试系统数据库设计(表)(7页珍藏版)》请在⼈⼈⽂库⽹上搜 索。 1、在线考试系统...
对于显示在标签上的动态数据或组合数据及条形码和二维码生成数据如产品型号,数量,客户编号及型号+XXX等显示信息或数据可以通过设置SQL语句从特定数据库提取并绑定相关字段值来显示不同的数据。 需要完整的功能...
数据库设计技巧系-设计表和字段
数据库设计技巧系-设计表和字段知识.pdf
数据库设计规范,阿里云数据库设计规范!【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint ( 1表示是,0表示否)。 说明:任何字段如果为非负数,必须是 unsigned。 正例:...
NULL 博文链接:https://iamzhongyong.iteye.com/blog/1888934
社会养老保险数据库设计与实现 1. 系统开发目的 通过理论与实践教学,掌握关系型数据库的基本操作,理解关系型数据库的有关概念 ,具备一定的数据库结构设计的能力,并能综合运用所学知识,进行小型数据库应用系 统...
java实体类字段自定义-数据库字段和程序实体类属性不一致解决方案.docx
里面关于OA系统设计方案,数据库表的字段设计
执法案件管理系统-数据库设计 执法案件管理系统 数据库设计 执法案件管理系统-数据库设计全文共24页,当前为第1页。 执法案件管理系统-数据库设计全文共24页,当前为第2页。 执法案件管理系统-数据库设计全文共24页...
在设计数据库的时候会考虑到哪些数据字段将来可能会发生变更。...文中介绍了SQL Server数据库设计表和字段的经验。如字段名、前缀命名的选取问题,标识字段、标准化和数据驱动等问题。致性能上出现问题。
"XX公司xx事业部 "文档编号" "版本"A1 "密级 "商密A" " "项目名称"Xxx系统...7 一、引言 编写目的 例如:本文档是xx系统概要设计文档的组成部分,编写数据库设计文档的目的是:明 确数据库的表名、字段名等数据信息,用
3、化妆品销售管理信息系统数据库表单(表单和字段可以按照需求增、删、改) (1)用户信息表单:用户名、密码、用户类型(管理员和普通用户)。 (2)商品信息表单:商品编号、商品名称、价格、规格、供应商、...
数据库设计指南-60个设计技巧 如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据 库设计的材料汗牛充栋,大学学位课程里也有专门的讲述。不过,就如我们反复强调的那样,...
实验一 数据库的创建 1、 实验目的 1、熟悉掌握...文本 12 方法提示: 选择"表"对象,单击"使用设计器创建表" 选择"表"对象,单击"新建"按钮,选"设计视图"。 (2)打开表,参考上图输入若干数据。 方法提示: 选择