首页 > 数据库 >零售商贩mysql表设计:banner+banner_item+image关联表(轮播图表)

零售商贩mysql表设计:banner+banner_item+image关联表(轮播图表)

时间:2022-11-05 12:31:21浏览次数:39  
标签:11 轮播 int image 索引 NULL banner id


作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主

文章目录

  • ​​banner管理表(轮播图管理表)​​
  • ​​解析banner管理表(轮播图管理表)​​
  • ​​id解析:​​
  • ​​数据​​
  • ​​(banner子项表->banner_item)​​
  • ​​id解析:​​
  • ​​数据​​
  • ​​图片在image表中。​​
  • ​​解析​​
  • ​​什么是banner位?​​

banner管理表(轮播图管理表)

CREATE TABLE `banner` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL COMMENT 'Banner名称,通常作为标识',
`description` varchar(255) DEFAULT NULL COMMENT 'Banner描述',
`delete_time` int(11) DEFAULT NULL,
`update_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='banner管理表';

解析banner管理表(轮播图管理表)

你看啊。为什么要用这个表呢banner,因为是不是得划分一个区域来把图片(banner_item)放进去啊。
你看啊。为什么要使用name这个字段呢?因为一个轮播图得有名称把。得有描述把。描述是这个轮播图是什么名字.
名称是一个标识.说明这个是一个置顶的轮播图.
​​​delete_time​​​​update_time​​ 这两个字段代码这个轮播图要不要删除。要不要更新一下这个轮播图.

​PRIMARY KEY (​​​id​​)​​的意思是?

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。

数据

零售商贩mysql表设计:banner+banner_item+image关联表(轮播图表)_数据

(banner子项表->banner_item)

CREATE TABLE `banner_item` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`img_id` int(11) NOT NULL COMMENT '外键,关联image表',
`key_word` varchar(100) NOT NULL COMMENT '执行关键字,根据不同的type含义不同',
`type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '跳转类型,可能导向商品,可能导向专题,可能导向其他。0,无导向;1:导向商品;2:导向专题',
`delete_time` int(11) DEFAULT NULL,
`banner_id` int(11) NOT NULL COMMENT '外键,关联banner表',
`update_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COMMENT='banner子项表';

​PRIMARY KEY (​​​id​​)​​的意思是?

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。

​img_id​​​是关联下面的图片image表的id字段.
​​​key_word​​​ ​​type​​​ 是关联起来的,代表根据type的不同,跳向商品 专题 其他.
banner_id关联banner表的id,这篇文字第一张表啦

使用innodb表的优点是啥?

支持事务.
InnoDB 被设计对于CPU效率和最大性能 当处理大量数据时
InnoDB 表可以处理大量的数据,即使操作系统 文件限制为2GB

CHARSET=utf8mb4 这是字符集

数据

零售商贩mysql表设计:banner+banner_item+image关联表(轮播图表)_主键_02


上图的img_id关联image表的id字段.

image数据如下:

图片在image表中。

CREATE TABLE `image` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(255) NOT NULL COMMENT '图片路径',
`from` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1 来自本地,2 来自公网',
`delete_time` int(11) DEFAULT NULL,
`update_time` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=70 DEFAULT CHARSET=utf8mb4 COMMENT='图片总表';

你看啊。图片是不是得有路径啊。是不是的显示是本地图片还是线上的啊。

零售商贩mysql表设计:banner+banner_item+image关联表(轮播图表)_轮播图_03

解析

banner表是banner位.

什么是banner位?

Banner位,通常位于界面的顶部,是广告、运营活动、专题、新产品推广等重要信息的展示区域,通过运营同学来进行内容信息的维护,运用视觉表现的手法突出重点信息,来吸引用户的关注。

特点:

  1. Banner位主要存在于首页、发现页和资源列表页等信息集合页面中
  2. Banner位多数情况是轮播图,展示数量在28个,通常情况下35个为佳,数量太多的话不利于所有的banner的曝光,且用户错过一个就需要滑动多个才重新找见,体验感也不是很好。

banner_item是什么?
比如轮播图里面的图片.就是banner_item

banner与banner_item关系是啥,靠什么联系在一起的?
一对多的关系。一个banner对应多个banner_item。而一个banner_item不关联多个banner.

靠外键联系在一起的。子表banner_item中的banner_id关联banner表的id。


标签:11,轮播,int,image,索引,NULL,banner,id
From: https://blog.51cto.com/u_14760424/5825911

相关文章