跳转至

MySQL 数据库设计

时间:2019-05-30 14:50:25

数据库表设计#

存储引擎#

  1. 出于对对稳定性和数据安全的考虑一般选择 InnoDB, 当对数据安全要求不是很高,想要提升一定的速度可以选择 MyISAM

字段类型选择#

  1. 满足项目需求,考虑扩展和最坏情况。
  2. 表示清晰。
  3. 占用空间尽量小,尽量使用小的数据类型,基础类型如 int 指定长度与否不会底层存储的长度都是 32 位。
  4. 字段尽量设置为 NOT NULL, 且设置默认值。
  5. 金额等精度要求较高的数字使用 Decimal,占用空间大,其余情况尽量避免使用。
  6. 字符串存储 charvarchar,参考注意事项。
  7. IP地址32位无符号整数存储。

注意:

  1. int(100) int(20): 字段字段占用的长度是一样的。
  2. char(100):字段占用长度就是100。
  3. varchar(100): 字段占用的长度是实际存储的数据长度加上表示字段长度的字节数(1[0-255]或2[256-2^16-1])
  4. int 长度为32。有符号最大值为 2147483647,存储的最大日期为 2038-01-19 11:14:07。 无符号最大值为 4294967295,存储的最大日期为 2106-02-07 14:28:15

字符编码#

  1. 推荐使用 utf8mb4 可以存储所有类型的字符。也可以根据实际情况指定行的编码。