不要在数据库中保存文件,
直接把文件保存在硬盘上,或 OSS上,数据库只保存文件的路径
品牌表
首字母便于用户搜索
CREATE TABLE `t_brand`
(
`id` INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(200) NOT NULL COMMENT '名称',
`image` VARCHAR(500) COMMENT '图片地址',
`letter` CHAR(1) NOT NULL COMMENT '品牌首字母',
INDEX idx_letter (`letter`),
UNIQUE unq_name (`name`)
) COMMENT = '品牌表';
分类表
每个子类,都记录下父级的 ID,链表结构
例如评论,这个评论归属在哪个 话题下
- 一级分类,没有 id
- 经常被检索的的字段就添加索引
排名指数,权重
商品分类 ER图
CREATE TABLE `t_category`
(
`id` INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`name` VARCHAR(200) NOT NULL COMMENT '分类名称',
`parent_id` INT UNSIGNED COMMENT '上级分类ID,顶级分类是空值',
`is_parent` BOOLEAN NOT NULL COMMENT '是否有下级分类',
`sort` INT UNSIGNED NOT NULL COMMENT '排名指数',
INDEX idx_parent_id (`parent_id`),
INDEX idx_sort (`sort`) # 经常被检索的的字段就添加索引
) COMMENT = '商品分类表';
品牌和分类的关系
一个分类也可以有多个品牌
一个品牌可以有多个分类
品牌和分裂是 多对多的关系,多对多的关系要创建,关联表
CREATE TABLE `t_category_brand`
(
`category_id` INT UNSIGNED COMMENT '分类ID',
`brand_id` INT UNSIGNED COMMENT '品牌ID',
PRIMARY KEY (`category_id`, `brand_id`) # 2个字段组成的复合主键
) COMMENT = '分类与品牌关联表';