零售商贩mysql表设计:主题信息表(theme)
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主
文章目录
- sql
- 解析:
- 数据
sql
CREATE TABLE `theme` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL COMMENT '专题名称',
`description` varchar(255) DEFAULT NULL COMMENT '专题描述',
`topic_img_id` int(11) NOT NULL COMMENT '主题图,外键',
`delete_time` int(11) DEFAULT NULL,
`head_img_id` int(11) NOT NULL COMMENT '专题列表页,头图',
`update_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='主题信息表';
解析:
什么是专题?
所谓专题,是指针对某个特定对象而特别收集制作而成的一种集中作品,
id解析:
为什么要设置自增主键 id ? PRIMARY KEY (id)
可以唯一标识一行数据,在 InnoDB 构建索引树的时候会使用主键。
自增 id 是顺序的,可以保证索引树上的数据比较紧凑,有更高的空间利用率以及减少数据页的分裂合并等操作,提高效率。(数字顺序搜索快一点)
一般使用手机号、身份证号作为主键等并不能保证顺序性。
流水号一般相对较长,比如 28 位,32 位等,过长的话会二级索引占用空间较多。同时为了业务需求,流水号具有一定的随机性。
int(11)是什么意思?
“int(11)中,11代表的并不是长度,而是字符的显示宽度
为什么id不能为空NOT NULL?
如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化 ,因为可为 NULL 的列使 得索引、索引统计和值比较都更复杂 。可为NULL 的列会使用更多的存储空间 ,在 MySQL 里也需要特殊处理 。当可为NULL 的列被索引肘,每个索引记录需要一个额 外的字节,在 MyISAM 里甚至还可能导致固定大小 的索引 (例如只有一个整数列的 索引) 变成可变大小的索引。(为null是占用存储空间的。为空不占用存储空间哦)
AUTO_INCREMENT的特点?
默认情况下,AUTO_INCREMENT的起始值为1,每个新记录增加1。
name:一个专题得有名称吧。对吧。比如新品推荐,等等。。。。(这是详情的哦)
topic_img_id
int(11) NOT NULL COMMENT ‘主题图,外键’,
得有图片吧。对吧
这个是列表的图哦head_img_id
int(11) NOT NULL COMMENT ‘专题列表页,头图’,