【章节3】MySQL数据类型、数据表设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a786150017/article/details/78854612

MySQL常用数据类型

1.整数

    tinyint:-128—127(1个字节)
    smallint:-32768——32767(2个字节)
    int:4个字节
    bigint:8个字节
2.定点数:小数点的位置固定→数据精度得到保证
    decimal(p,s)    #p表示数字所占的总位数,s表示小数部分的位数
    --实际有效字节为p+2位,最大8个字节--
3.浮点数:小数点的位置不固定→表示的范围更大,但是不能保证精度
    float:4个字节
    double:8个字节
4.日期时间
    date:某年某月某日
    time:时间(24h),时间间隔(-839:59:59——839:59:59)
    datetime
5.文本
    char:固定长度文本   char(5)表示长度为5注意如果长度为3,会添加2个空格
    varchar:varchar(5)注意如果长度为3,只分配3个字节
    text:大文本(无限长文本),不能作为查询条件
6.二进制数据
    bit
用一张图来总结,如下:


数据表设计

1.数据表的设计流程和ER图

(1)需求分析阶段:分析客户的业务和数据处理需求

(2)概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整

(3)详细设计阶段:将E-R图转换成多张表→进行逻辑设计→应用数据库设计的三大范式进行审核

(4)代码编写阶段:将设计和规范的数据表进行物理实现

举个例子(模拟QQ游戏大厅项目)


ER(Entity-Relationship)实体关系图

此例子中的实体为:游戏和玩家

注意如下符号和含义:


(QQ游戏大厅项目E-R图):


2.使用范式检查数据表设计的合理性

范式:一种衡量数据库设计好不好(冗余?)的规范


第一范式(1st NF):每一列不能再分割


第二范式(2nd NF):表中每一个列都表示主键所代表的实体
*一个关系--一个表
**胜者得分是用来描述难度的字段,不是用来描述游戏的



第三范式(3rd NF):不存在冗余
*玩家昵称可以不出现在分数表中,因为玩家昵称可以在玩家表中找到
















猜你喜欢

转载自blog.csdn.net/a786150017/article/details/78854612