前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零售商贩mysql表设计:banner管理表

零售商贩mysql表设计:banner管理表

作者头像
贵哥的编程之路
发布2022-11-14 16:55:26
7710
发布2022-11-14 16:55:26
举报

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

文章目录


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

代码语言:javascript
复制
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管理表';

解析字段:

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解析:

name是轮播图的名字。名字一般用varchar表示。但是尽量表示的大一点哦。 DEFAULT NULL代表默认为null. COMMENT ‘Banner名称,通常作为标识’,代表注释。给程序员看的。代表这个表或者字段所表示的是什么意思.

description varchar(255) DEFAULT NULL COMMENT ‘Banner描述’,

用这个字段的作用是:轮播图上面可以加描述可用是文字 数字 字母什么的.

delete_time int(11) DEFAULT NULL,

删除轮播图的时间

update_time int(11) DEFAULT NULL,

更新轮播图的时间.

使用innodb表的优点是啥?

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

CHARSET=utf8mb4 这是字符集

数据

在这里插入图片描述
在这里插入图片描述

(banner子项表->banner_item)

代码语言:javascript
复制
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 这是字符集

数据

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

image数据如下:

图片在image表中。

代码语言:javascript
复制
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='图片总表';

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

解析

banner表是banner位.

什么是banner位?

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

特点:

Banner位主要存在于首页、发现页和资源列表页等信息集合页面中

Banner位多数情况是轮播图,展示数量在28个,通常情况下35个为佳,数量太多的话不利于所有的banner的曝光,且用户错过一个就需要滑动多个才重新找见,体验感也不是很好。

banner_item是什么?

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

banner与banner_item关系是啥,靠什么联系在一起的?

一对多的关系。一个banner对应多个banner_item。而一个banner_item不关联多个banner.

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • banner管理表(轮播图管理表)
    • 解析字段:
      • id解析:
      • name解析:
      • description varchar(255) DEFAULT NULL COMMENT ‘Banner描述’,
      • delete_time int(11) DEFAULT NULL,
  • 数据
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档