`
youyu4
  • 浏览: 440262 次
社区版块
存档分类
最新评论

数据库设计 -- 字段的选择

 
阅读更多

数据库设计 -- 字段的选择

 

 

为什么要注意字段的选择?

 

       在数据库设计过程中我们要本着够用的原则,如果一味的把数据字段范围设为最大或者默认值的话,会导致存储空间大量的浪费。在数据量特别大的情况下,这样的设计原理将会使数据库空间造成严重的浪费,也会对数据库的执行效率造成很大的影响。所以我们在做数据库设计的时候要谨慎再谨慎、小心再小心。

 

 

 

 

常用的数据类型

 

       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

分享到:
评论

相关推荐

    数据库设计规范---适用于各种数据库

    数据库设计规范 数据库设计规范是指在设计和开发数据库时所遵循的一些规则和标准,以确保数据库的可维护性、可扩展性和可读性。本文将对数据库设计规范进行详细的解释。 数据库涉及字符规范 在数据库设计中,字符...

    图书管理系统数据库设计-MYSQL实现.docx

    图书管理系统数据库设计是一个重要的环节,它涉及到数据的组织、存储和检索,对于高效管理图书馆的图书流通至关重要。在这个系统中,我们使用MySQL作为数据库管理系统,它是一个广泛应用的关系型数据库,支持多种...

    21-08-04_FMDemo(002_在MicrosoftSQLServer中自动生成相应的数据库-表-字段-约束规则).rar

    标题中的“21-08-04_FMDemo(002_在MicrosoftSQLServer中自动生成相应的数据库-表-字段-约束规则).rar”指的是一个关于在Microsoft SQL Server中使用某种工具或方法自动创建数据库结构的示例。这个示例可能是一个教程...

    表单建模数据库设计文档-- ecology80

    ### 表单建模数据库设计文档 -- ecology80 #### 概述 本文档旨在详细介绍一个专门用于表单建模的数据库设计方案——ecology80。该设计方案围绕着表单构建过程中的各个环节展开,包括但不限于应用基本信息管理、模块...

    为数据库表设计可扩展的字段

    在数据库设计中,确保表结构具有良好的扩展性是至关重要的,因为这直接影响到系统的灵活性、维护...通过灵活运用范式理论、EAV模型、扩展字段和ORM工具,我们可以创建出既适应当前需求,又能适应未来变化的数据库设计。

    数据库设计-教务管理系统

    在这个系统中,数据库设计是核心部分,它决定了系统的数据存储、查询效率以及数据的一致性和完整性。本项目使用了Visual FoxPro(VFP)6.0作为开发工具,这是一款在90年代末期至21世纪初广泛使用的数据库应用程序...

    图书管理系统数据库设计-MYSQL实现.pdf

    图书管理系统数据库设计-MYSQL实现 一、系统概述 图书管理系统是每个图书馆都需要进行的工作。一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。本系统的需求定义为:学生可以直接通过借阅终端来...

    数据库设计-教师教学信息管理系统.doc

    数据库设计-教师教学信息管理系统 本数据库设计报告旨在构建一个教师教学信息管理系统,旨在满足教师教学信息管理的需求。系统功能模块图如图1所示,系统主要包括学院信息管理、教师信息管理、课程信息管理、报表...

    股票模拟系统数据库e-r图

    股票模拟系统数据库e-r图-----包括详细的字段设计等信息

    数据库设计文档 --软件开发中数据库设计

    数据库设计是软件开发过程中的关键环节,它直接影响到系统的性能、稳定性和可扩展性。一个良好的数据库设计文档能够清晰地阐述系统数据结构、业务规则以及数据间的关联,从而为开发团队提供准确的指导。以下是对...

    学生成绩管理系统数据库设计-MySQL.zip

    在本项目中,我们关注的是一...这个学生成绩管理系统数据库设计不仅涵盖了数据库的基本概念,还涉及到数据库设计的各个方面,包括表结构、关系、查询语言、安全性、性能优化等,是学习和实践数据库管理系统的良好实例。

    数据库设计(数据字典,E-R图,模式关系等)

    数据库设计是信息系统开发中的关键步骤,它涉及到数据的组织、存储和访问方式。在这个过程中,数据字典、E-R图和关系模式是至关重要的概念。 数据字典是数据库设计的基石,它包含了所有关于数据库中数据元素的详细...

    x01-2014-2015学年02期-数据库应用技术-项目01-项目数据库设计-任务4-范式.ppt

    【数据库应用技术】和【关系数据库设计】是本文件的核心主题。关系数据库设计涉及如何有效地组织和存储数据,确保数据的准确性和一致性。这通常基于规范化理论,它是一套指导原则,帮助设计师创建科学合理的关系模式...

    Android音乐播放器毕业设计论文

    第三章 Android数据库设计 - 13 - 3.1 数据库及字段属性设计 - 13 - 3.1.1 字段设计(表、图) - 13 - 3.1.2 音乐播放器E-R图 - 15 - 3.2 数据库连接 - 15 - 3.2.1 创建数据库 - 15 - 3.2.2 操作数据库 - 16 - 3.2.3...

    数据库报告-银行系统 设计报告

    本报告主要聚焦于银行系统的数据库设计,旨在为相关人员提供详尽的设计理念和实施步骤。银行系统数据库是金融机构信息化的核心部分,它负责存储、管理和处理大量的金融交易数据,包括客户信息、账户详情、交易记录等...

    数据库课程设计-数据库设计.docx

    综上所述,通过对文档标题、描述、标签以及部分内容的分析,我们可以了解到一个关于信息管理系网站的数据库设计项目的详细内容,涉及数据库设计的各个阶段以及相关的技术和方法。这对于学习和实践数据库设计是非常...

    关系型数据库---第一范式

    第一范式(1NF)是关系型数据库设计理论中的一种规则,要求每个字段都是原子型的,表格没有多值项目和重复组,并且每个字段都有一个关键字(key)。 在关系型数据库中,第一范式的应用是非常重要的,因为它可以确保...

    数据库课程设计--学籍管理系统

    开发环境可能包括Windows操作系统,Visual Studio或SQL Server Management Studio作为数据库设计和管理工具,以及可能使用的其他编程语言(如C#或VB.NET)进行前端应用程序开发。 **三、需求分析** 在需求分析阶段...

Global site tag (gtag.js) - Google Analytics