物理设计

根据所选择的关系型数据库的特典对逻辑模型进行存储结构设计

物理设计涉及的内容:

1.定义数据库、表及字段的命名规范

多个人协作完成,玩了工作的沟通方便,我们需要有规范 

要完成以下几个原则

①数据库、表以及字段的命名要遵守可读性原则,例如使用下划线分隔不同单词,或者首字母大写等等(对MYsql来说表名大小写敏感)

②遵守表意性原则,对象命名时应该选择能体现内容给的

③长名原则:是的名字能代表内容,少的使用或者不适用缩写,当然也不能太长

2.选择合适的存储引擎

物理设计_第1张图片

推荐使用INNODB,表的主键尽可能的小,应该顺序增长的,可以避免随机IO产生,增加数据的插入效率。

INNODB主键可以与业务主键不同

3.为表中字段选择合适的数据类型

当一个列可以选择多种数据类型的时候,应该优先考虑数字类型,其次是日期或二进制类型,最后是字符类型。对于相同级别的数据类型,应该优先占用空间小的数据类型。

整数类型:

物理设计_第2张图片

实数类型:

物理设计_第3张图片

财务相关必须精确的DECIMAL

如何选择VARCHAR和CHAR

VARCHAR存储变长字符串,只占用必要的空间

列的最大长度小于255则只占用一个额外字节用于记录字符串长度,大于255两个字节

VARCHAR长度的选择问题,使用最小符合需求的长度

VARCHAR(5)和VARCHAR(200)性能不同

适合存储最大长度比平均大很多,很少被跟新,因为字符串变化,会引起分裂出碎片,适合存储UTF-8的多字节字符集

CHAR类型

CHAR类型时定长,定义50就算不用50 也是50

如果字符串末尾包含空格会被自动删除(VARCHAR不会)

CHAR类型最大宽度255

适合存储近似长度,比如md5  或者身份证和手机号    

适合存储短字符串(varchar还需要存长度)

适合存储经常更新

DATATIME类型 

物理设计_第4张图片

同时区无关,占用8个字节的存储空间,范围从1000-01-01 00:00:00到9999-12-31 23.59.59

TIMESTAMP类型

时间戳


1970-1-1到2038-01-19

依赖于时区

在行的数据修改时自动修改其值

 DATE类型和TIME类型    只需要保存日期或者时间                 比如生日

优点:占用的字节数最少,只需要3个字节 

1000-01-01到9999-12-31

TIME:格式    HH:MM:SS

注意事项:不要使用字符串类型来处理日期时间数据

原因:日期时间类型占空间小,进行查找过滤时可以利用日期来进行对比,有着丰富的处理函数,可以方便对时期类型进行日期计算

INT存储日期时间不如时间戳格式

4.建立数据库结构


你可能感兴趣的:(数据库)