概述
某电商网站的数据库设计(1)——基础信息数据表的设计
目录
- 某电商网站的数据库设计(1)——基础信息数据表的设计
- 一、人事相关数据表
- 1、部门表(tb_department)
- 2、大组表
- 3、小组表
- 4、员工表
- 二、平台和店铺表
- 1、销售平台表
- 2、店铺表
- 三、产品信息
- 1、品牌表
- 2、产品(单品)表
- 3、商品链接表
- 4、产品套装表
- 5、【产品-套装】对应关系表
模拟一个电商网站的数据库设计,设计了网站用到的表,并输入模拟数据。
数据库名:mydb
创建数据库的代码如下:
mysql> CREATE DATABASE `mydb` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
Query OK, 1 row affected (0.00 sec)
mysql> use mydb;
Database changed
一、人事相关数据表
1、部门表(tb_department)
表结构如下:
-- ====================================================================================
-- 一、人事相关数据表
-- 包含 4 张表:
-- (1)部门表(tb_department)
-- (2)大组表(tb_large_group)
-- (3)小组表(tb_team)
-- (4)员工表(tb_employee)
-- ====================================================================================
-- ====================================================================================
-- 1、部门表
-- 表名:tb_department
-- 列名:dept_id(部门id),dept_no(部门编号),dept_name(部门名称),
-- dept_header(部门主管),dept_remark(部门备注)
-- ====================================================================================
DROP TABLE IF EXISTS `tb_department`;
CREATE TABLE `tb_department` (
`dept_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门id',
`dept_no` char(20) NOT NULL DEFAULT '' COMMENT '部门编号',
`dept_name` char(50) NOT NULL DEFAULT '' COMMENT '部门名称',
`dept_header` char(50) NOT NULL DEFAULT '' COMMENT '部门主管',
`dept_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '部门备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`dept_id`),
KEY `idx_dept_name` (`dept_name`),
KEY `idx_dept_header` (`dept_header`),
UNIQUE KEY `dept_dept_no` (`dept_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '部门表';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_department(dept_no,dept_name) values('D001','销售部');
insert into tb_department(dept_no,dept_name) values('D002','财务部');
-- 查询表中的数据
/*
select dept_no,dept_name
from tb_department;
*/
mysql> select dept_no,dept_name
-> from tb_department;
+---------+-----------+
| dept_no | dept_name |
+---------+-----------+
| D001 | 销售部 |
| D002 | 财务部 |
+---------+-----------+
2 rows in set (0.00 sec)
2、大组表
表结构如下:
-- ====================================================================================
-- 2、大组表
-- 表名:tb_large_group
-- 列名:lg_id(大组id),lg_no(大组编号),lg_name(大组名称),lg_header(大组主管),
-- dept_no(部门编号),lg_remark(大组备注)
-- 外键:dept_no,与部门表(tb_department)的主键(dept_no)对应。
-- ====================================================================================
DROP TABLE IF EXISTS `tb_large_group`;
CREATE TABLE `tb_large_group` (
`lg_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '大组id',
`lg_no` char(20) NOT NULL DEFAULT '' COMMENT '大组编号',
`lg_name` char(50) NOT NULL DEFAULT '' COMMENT '大组名称',
`lg_header` char(50) NOT NULL DEFAULT '' COMMENT '大组主管',
`dept_no` char(20) NOT NULL DEFAULT '' COMMENT '部门编号',
`lg_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '大组备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`lg_id`),
UNIQUE KEY `lg_lg_no` (`lg_no`),
KEY `idx_lg_name` (`lg_name`),
KEY `idx_lg_header` (`lg_header`),
KEY `lg_dept_no` (`dept_no`),
CONSTRAINT `fk_lg_dept` FOREIGN KEY (`dept_no`) REFERENCES `tb_department` (`dept_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '大组,外键:dept_no,和部门(dept)表的dept_no列对应';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_large_group(lg_no,lg_name,lg_header,dept_no)
values('DZ01','电脑销售大组','刘备','D001');
insert into tb_large_group(lg_no,lg_name,lg_header,dept_no)
values('DZ02','打印设备销售大组','曹操','D001');
-- 查询表中的数据
/*
select lg.lg_no,lg.lg_name,lg.lg_header,d.dept_no,d.dept_name
from tb_large_group lg,tb_department d
where lg.dept_no=d.dept_no;
*/
mysql> select lg.lg_no,lg.lg_name,lg.lg_header,d.dept_no,d.dept_name
-> from tb_large_group lg,tb_department d
-> where lg.dept_no=d.dept_no;
+-------+--------------------------+-----------+---------+-----------+
| lg_no | lg_name | lg_header | dept_no | dept_name |
+-------+--------------------------+-----------+---------+-----------+
| DZ01 | 电脑销售大组 | 刘备 | D001 | 销售部 |
| DZ02 | 打印设备销售大组 | 曹操 | D001 | 销售部 |
+-------+--------------------------+-----------+---------+-----------+
2 rows in set (0.00 sec)
3、小组表
表结构如下:
-- ====================================================================================
-- 3、小组表
-- 表名:tb_team
-- 列名:team_id(小组id),team_no(小组编号),team_name(小组名称),
-- team_header(小组组长),lg_no(大组编号),team_remark(小组备注)
-- 外键:lg_no,与大组表(tb_large_group)的主键(lg_no)对应。
-- ====================================================================================
DROP TABLE IF EXISTS `tb_team`;
CREATE TABLE `tb_team` (
`team_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '小组id',
`team_no` char(20) NOT NULL DEFAULT '' COMMENT '小组编号',
`team_name` char(50) NOT NULL DEFAULT '' COMMENT '小组名称',
`team_header` char(50) NOT NULL DEFAULT '' COMMENT '小组组长',
`lg_no` char(20) NOT NULL DEFAULT '' COMMENT '大组编号',
`team_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '小组备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`team_id`),
UNIQUE KEY `team_team_no` (`team_no`),
KEY `team_lg_no` (`lg_no`),
KEY `idx_team_name` (`team_name`),
KEY `idx_team_header` (`team_header`),
CONSTRAINT `fk_team_lg` FOREIGN KEY (`lg_no`) REFERENCES `tb_large_group` (`lg_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '小组表。外键:lg_no,与大组表(tb_large_group)的主键(lg_no)对应。';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_team(team_no,team_name,team_header,lg_no)
values('DZ01-XZ01','台式机销售小组','诸葛亮','DZ01');
insert into tb_team(team_no,team_name,team_header,lg_no)
values('DZ01-XZ02','笔记本销售小组','庞统','DZ01');
insert into tb_team(team_no,team_name,team_header,lg_no)
values('DZ02-XZ03','打印机销售小组','司马懿','DZ02');
insert into tb_team(team_no,team_name,team_header,lg_no)
values('DZ02-XZ04','复印机销售小组','徐庶','DZ02');
/*
-- 查询表中的数据
select t.team_no,t.team_name,t.team_header,
lg.lg_name,lg.lg_header,d.dept_name
from tb_team t,tb_large_group lg,tb_department d
where t.lg_no=lg.lg_no and lg.dept_no=d.dept_no;
*/
mysql> select t.team_no,t.team_name,t.team_header,
-> lg.lg_name,lg.lg_header,d.dept_name
-> from tb_team t,tb_large_group lg,tb_department d
-> where t.lg_no=lg.lg_no and lg.dept_no=d.dept_no;
+-----------+-------------+--------------+-----------+-----------+-----------+
| team_no | team_name | team_header | lg_name | lg_header | dept_name |
+-----------+-------------+--------------+-----------+-----------+-----------+
| DZ01-XZ01 | 台式机销售小组 | 诸葛亮 | 电脑销售大组 | 刘备 | 销售部 |
| DZ01-XZ02 | 笔记本销售小组 | 庞统 | 电脑销售大组 | 刘备 | 销售部 |
| DZ02-XZ03 | 打印机销售小组 | 司马懿 | 打印设备销售大组 | 曹操 | 销售部 |
| DZ02-XZ04 | 复印机销售小组 | 徐庶 | 打印设备销售大组 | 曹操 | 销售部 |
+-----------+-------------+--------------+-----------+-----------+-----------+
4 rows in set (0.01 sec)
4、员工表
表结构如下:
-- ====================================================================================
-- 4、员工表
-- 表名:tb_employee
-- 列名:emp_id(员工id),emp_no(员工编号),emp_name(员工姓名),emp_gender(员工性别),
-- emp_birth(出生日期),join_date(入职日期),phone(手机号),team_no(小组编号)
-- 外键:team_no,与小组表(tb_team)的主键(team_no)对应。
-- ====================================================================================
DROP TABLE IF EXISTS `tb_employee`;
CREATE TABLE `tb_employee` (
`emp_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '员工id',
`emp_no` char(20) NOT NULL DEFAULT '' COMMENT '员工编号',
`emp_name` char(20) NOT NULL DEFAULT '' COMMENT '员工姓名',
`emp_gender` char(4) NOT NULL DEFAULT '' COMMENT '性别',
`emp_birth` date NOT NULL DEFAULT '1900-01-01' COMMENT '出生日期',
`join_date` date NOT NULL DEFAULT '1900-01-01' COMMENT '入职日期',
`phone` char(20) NOT NULL DEFAULT '' COMMENT '手机号',
`team_no` char(20) NOT NULL DEFAULT '' COMMENT '小组编号',
`emp_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`emp_id`),
KEY `employee_team_no` (`team_no`),
KEY `idx_emp_name` (`emp_name`),
UNIQUE KEY `emp_emp_no` (`emp_no`),
CONSTRAINT `fk_employee_team` FOREIGN KEY (`team_no`) REFERENCES `tb_team` (`team_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '员工表。外键:team_no,与小组表(tb_team)的主键(team_no)对应。';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_employee(emp_no,emp_name,team_no) values('E101','刘备','DZ01-XZ01');
insert into tb_employee(emp_no,emp_name,team_no) values('E102','诸葛亮','DZ01-XZ01');
insert into tb_employee(emp_no,emp_name,team_no) values('E103','关羽','DZ01-XZ01');
insert into tb_employee(emp_no,emp_name,team_no) values('E201','庞统','DZ01-XZ02');
insert into tb_employee(emp_no,emp_name,team_no) values('E202','张飞','DZ01-XZ02');
insert into tb_employee(emp_no,emp_name,team_no) values('E203','赵云','DZ01-XZ02');
insert into tb_employee(emp_no,emp_name,team_no) values('E301','曹操','DZ02-XZ03');
insert into tb_employee(emp_no,emp_name,team_no) values('E302','司马懿','DZ02-XZ03');
insert into tb_employee(emp_no,emp_name,team_no) values('E303','夏侯渊','DZ02-XZ03');
insert into tb_employee(emp_no,emp_name,team_no) values('E401','徐庶','DZ02-XZ04');
insert into tb_employee(emp_no,emp_name,team_no) values('E402','张辽','DZ02-XZ04');
insert into tb_employee(emp_no,emp_name,team_no) values('E403','典韦','DZ02-XZ04');
/*
-- 查询表中的数据
select e.emp_no,e.emp_name,
t.team_no,t.team_name,t.team_header,
lg.lg_name,lg.lg_header,d.dept_name
from tb_employee e,tb_team t,tb_large_group lg,tb_department d
where e.team_no=t.team_no and t.lg_no=lg.lg_no and lg.dept_no=d.dept_no;
*/
mysql> select e.emp_no,e.emp_name,
-> t.team_no,t.team_name,t.team_header,
-> lg.lg_name,lg.lg_header,d.dept_name
-> from tb_employee e,tb_team t,tb_large_group lg,tb_department d
-> where e.team_no=t.team_no and t.lg_no=lg.lg_no and lg.dept_no=d.dept_no;
+--------+-----------+-----------+-----------------------+-------------+----------
| emp_no|emp_name| team_no| team_name | team_header | lg_name | lg_header | dept_name |
+--------+-----------+-----------+-----------------------+-------------+----------
| E101| 刘备 | DZ01-XZ01 | 台式机销售小组 | 诸葛亮 | 电脑销售大组 | 刘备 | 销售部 |
| E102| 诸葛亮| DZ01-XZ01 | 台式机销售小组| 诸葛亮 | 电脑销售大组 | 刘备 | 销售部 |
| E103| 关羽 | DZ01-XZ01 | 台式机销售小组| 诸葛亮 | 电脑销售大组 | 刘备 | 销售部 |
| E201| 庞统 | DZ01-XZ02 | 笔记本销售小组| 庞统 | 电脑销售大组 | 刘备 | 销售部 |
| E202| 张飞 | DZ01-XZ02 | 笔记本销售小组| 庞统 | 电脑销售大组 | 刘备 | 销售部 |
| E203| 赵云 | DZ01-XZ02 | 笔记本销售小组| 庞统 | 电脑销售大组 | 刘备 | 销售部 |
| E301| 曹操 | DZ02-XZ03 | 打印机销售小组| 司马懿 | 打印设备销售大组 | 曹操 | 销售部 |
| E302| 司马懿| DZ02-XZ03 | 打印机销售小组| 司马懿 | 打印设备销售大组 | 曹操 | 销售部 |
| E303| 夏侯渊| DZ02-XZ03 | 打印机销售小组| 司马懿 | 打印设备销售大组 | 曹操 | 销售部 |
| E401| 徐庶 | DZ02-XZ04 | 复印机销售小组| 徐庶 | 打印设备销售大组 | 曹操 | 销售部 |
| E402| 张辽 | DZ02-XZ04 | 复印机销售小组| 徐庶 | 打印设备销售大组 | 曹操 | 销售部 |
| E403| 典韦 | DZ02-XZ04 | 复印机销售小组| 徐庶 | 打印设备销售大组 | 曹操 | 销售部 |
+--------+-----------+-----------+-----------------------+-------------+----------
12 rows in set (0.00 sec)
二、平台和店铺表
1、销售平台表
表结构如下:
-- ====================================================================================
-- 二、平台和店铺表
-- 包含 2 张表:
-- (1)销售平台表(tb_platform)
-- (2)店铺表(tb_store)
-- ====================================================================================
-- ====================================================================================
-- 1、销售平台表
-- 表名:tb_platform
-- 列名:platform_id(平台id),platform_no(平台编号),platform_name(平台名称),
-- platform_remark(平台备注)
-- ====================================================================================
DROP TABLE IF EXISTS `tb_platform`;
CREATE TABLE `tb_platform` (
`platform_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '销售平台id',
`platform_no` char(20) NOT NULL DEFAULT '' COMMENT '销售平台编号',
`platform_name` char(50) NOT NULL DEFAULT '' COMMENT '销售平台名称',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
`platform_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '销售平台备注',
PRIMARY KEY (`platform_id`),
KEY `idx_platform_name` (`platform_name`),
UNIQUE KEY `platform_platform_no` (`platform_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '销售平台表';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_platform(platform_no,platform_name) values('TM','天猫');
insert into tb_platform(platform_no,platform_name) values('JD','京东');
/*
-- 查询表中的数据
select platform_no,platform_name
from tb_platform;
*/
mysql> select platform_no,platform_name
-> from tb_platform;
+-------------+---------------+
| platform_no | platform_name |
+-------------+---------------+
| TM | 天猫 |
| JD | 京东 |
+-------------+---------------+
2 rows in set (0.00 sec)
2、店铺表
表结构如下:
-- ====================================================================================
-- 2、店铺表
-- 表名:tb_store
-- 列名:store_id(店铺id),store_no(店铺编号),store_name(店铺名称),store_remark(店铺备注)
-- 外键:platform_no,与平台表(tb_platform)的主键(platform_no)对应。
-- ====================================================================================
DROP TABLE IF EXISTS `tb_store`;
CREATE TABLE `tb_store` (
`store_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '店铺id',
`store_no` char(20) NOT NULL DEFAULT '' COMMENT '店铺编号',
`store_name` char(80) NOT NULL DEFAULT '' COMMENT '店铺名称',
`platform_no` char(20) NOT NULL DEFAULT '' COMMENT '销售平台编号',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
`store_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '店铺备注',
PRIMARY KEY (`store_id`),
UNIQUE KEY `store_store_no` (`store_no`),
KEY `store_platform_no` (`platform_no`),
KEY `idx_store_name` (`store_name`),
CONSTRAINT `fk_store_platform` FOREIGN KEY (`platform_no`) REFERENCES `tb_platform` (`platform_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '店铺表。外键:platform_no,与平台表(tb_platform)的主键(platform_no)对应。';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_store(store_no,store_name,platform_no) values('FZDN-TM001','方正电脑天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('SZDN-TM001','神州电脑天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('DERDN-TM001','戴尔电脑天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('HPDN-TM001','惠普电脑天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('LX-TM001','联想办公用品天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('XD-TM001','兄弟办公用品天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('JC-TM001','京瓷办公用品天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('XP-TM001','夏普办公用品天猫旗舰店','TM');
insert into tb_store(store_no,store_name,platform_no) values('FZDN-JD001','方正电脑京东旗舰店','JD');
insert into tb_store(store_no,store_name,platform_no) values('SZDN-JD001','神州电脑京东旗舰店','JD');
insert into tb_store(store_no,store_name,platform_no) values('DERDN-JD001','戴尔电脑京东旗舰店','JD');
insert into tb_store(store_no,store_name,platform_no) values('HPDN-JD001','惠普电脑京东旗舰店','JD');
insert into tb_store(store_no,store_name,platform_no) values('LX-JD001','联想办公用品京东旗舰店','JD');
insert into tb_store(store_no,store_name,platform_no) values('XD-JD001','兄弟办公用品京东旗舰店','JD');
insert into tb_store(store_no,store_name,platform_no) values('JC-JD001','京瓷办公用品京东旗舰店','JD');
insert into tb_store(store_no,store_name,platform_no) values('XP-JD001','夏普办公用品京东旗舰店','JD');
/*
-- 查询表中的数据
select s.store_no,s.store_name,s.platform_no,p.platform_name
from tb_store s,tb_platform p
where s.platform_no=p.platform_no;
*/
mysql> select s.store_no,s.store_name,s.platform_no,p.platform_name
-> from tb_store s,tb_platform p
-> where s.platform_no=p.platform_no;
+-------------+-----------------------------------+-------------+---------------+
| store_no | store_name | platform_no | platform_name |
+-------------+-----------------------------------+-------------+---------------+
| FZDN-TM001 | 方正电脑天猫旗舰店 | TM | 天猫 |
| SZDN-TM001 | 神州电脑天猫旗舰店 | TM | 天猫 |
| DERDN-TM001 | 戴尔电脑天猫旗舰店 | TM | 天猫 |
| HPDN-TM001 | 惠普电脑天猫旗舰店 | TM | 天猫 |
| LX-TM001 | 联想办公用品天猫旗舰店 | TM | 天猫 |
| XD-TM001 | 兄弟办公用品天猫旗舰店 | TM | 天猫 |
| JC-TM001 | 京瓷办公用品天猫旗舰店 | TM | 天猫 |
| XP-TM001 | 夏普办公用品天猫旗舰店 | TM | 天猫 |
| FZDN-JD001 | 方正电脑京东旗舰店 | JD | 京东 |
| SZDN-JD001 | 神州电脑京东旗舰店 | JD | 京东 |
| DERDN-JD001 | 戴尔电脑京东旗舰店 | JD | 京东 |
| HPDN-JD001 | 惠普电脑京东旗舰店 | JD | 京东 |
| LX-JD001 | 联想办公用品京东旗舰店 | JD | 京东 |
| XD-JD001 | 兄弟办公用品京东旗舰店 | JD | 京东 |
| JC-JD001 | 京瓷办公用品京东旗舰店 | JD | 京东 |
| XP-JD001 | 夏普办公用品京东旗舰店 | JD | 京东 |
+-------------+-----------------------------------+-------------+---------------+
16 rows in set (0.00 sec)
三、产品信息
1、品牌表
表结构如下:
-- ====================================================================================
-- 三、产品信息
-- 包含 5 张表:
-- (1)品牌表(tb_brand)
-- (2)产品(单品SPU)表(tb_product)
-- (3)商品表(tb_goods)
-- (4)产品套装表(tb_packaged)
-- (5)【产品-套装】对应关系表(tb_product_packaged_relation)
-- ====================================================================================
-- ====================================================================================
-- 1、品牌表
-- 表名:tb_brand
-- 列名:brand_id(品牌id),brand_no(品牌编号),brand_name(品牌名称),brand_remark(品牌备注)
-- ====================================================================================
DROP TABLE IF EXISTS `tb_brand`;
CREATE TABLE `tb_brand` (
`brand_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '品牌id',
`brand_no` char(20) NOT NULL DEFAULT '' COMMENT '品牌编号',
`brand_name` char(50) NOT NULL DEFAULT '' COMMENT '品牌名称',
`brand_English_name` char(100) NOT NULL DEFAULT '' COMMENT '英文名称',
`brand_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '品牌备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`brand_id`),
KEY `idx_brand_name` (`brand_name`),
KEY `idx_brand_English_name` (`brand_English_name`),
UNIQUE KEY `brand_brand_no` (`brand_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '品牌表';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B101','方正','FZ');
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B102','神州','SZ');
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B201','戴尔','DER');
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B202','惠普','HP');
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B301','联想','LX');
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B302','兄弟','XD');
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B401','京瓷','JC');
insert into tb_brand(brand_no,brand_name,brand_English_name) values('B402','夏普','XP');
/*
-- 查询表中的数据
select brand_no,brand_name,brand_English_name
from tb_brand;
*/
mysql> select brand_no,brand_name,brand_English_name
-> from tb_brand;
+----------+------------+--------------------+
| brand_no | brand_name | brand_English_name |
+----------+------------+--------------------+
| B101 | 方正 | FZ |
| B102 | 神州 | SZ |
| B201 | 戴尔 | DER |
| B202 | 惠普 | HP |
| B301 | 联想 | LX |
| B302 | 兄弟 | XD |
| B401 | 京瓷 | JC |
| B402 | 夏普 | XP |
+----------+------------+--------------------+
8 rows in set (0.00 sec)
2、产品(单品)表
表结构如下:
-- ====================================================================================
-- 2、产品(单品SPU)表
-- 表名:tb_product
-- 列名:product_id(产品id),product_no(产品编号),product_name(产品名称),
-- brand_id(品牌id),product_remark(产品备注)
-- 外键:brand_no,与品牌表(tb_brand)的主键(brand_no)对应。
-- 外键:team_no,与小组表(tb_team)的主键(team_no)对应。
-- ====================================================================================
DROP TABLE IF EXISTS `tb_product`;
CREATE TABLE `tb_product` (
`product_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '产品id',
`product_no` char(20) NOT NULL DEFAULT '' COMMENT '产品编号',
`product_name` char(50) NOT NULL DEFAULT '' COMMENT '产品名称',
`brand_no` char(20) NOT NULL DEFAULT '' COMMENT '品牌编号',
`team_no` char(20) DEFAULT '' COMMENT '小组编号',
`product_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '产品备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`product_id`),
UNIQUE KEY `product_product_no` (`product_no`),
KEY `product_brand_no` (`brand_no`),
KEY `product_team_no` (`team_no`),
KEY `idx_product_name` (`product_name`),
CONSTRAINT `fk_product_brand` FOREIGN KEY (`brand_no`) REFERENCES `tb_brand` (`brand_no`),
CONSTRAINT `fk_product_team` FOREIGN KEY (`team_no`) REFERENCES `tb_team` (`team_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '产品(单品SPU)表。外键1:brand_no,与品牌表(tb_brand)的主键(brand_no)对应。外键2:team_no,与小组表(tb_team)的主键(team_no)对应。';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_product(product_no,product_name,brand_no,team_no) values('FZ-NS-01','方正台式机','B101','DZ01-XZ01');
insert into tb_product(product_no,product_name,brand_no,team_no) values('FZ-NS-02','方正一体机','B101','DZ01-XZ01');
insert into tb_product(product_no,product_name,brand_no,team_no) values('SZ_HF-01','神州台式机','B102','DZ01-XZ01');
insert into tb_product(product_no,product_name,brand_no,team_no) values('SZ_HF-02','神州一体机','B102','DZ01-XZ01');
insert into tb_product(product_no,product_name,brand_no,team_no) values('DER-NS-01','戴尔笔记本','B201','DZ01-XZ02');
insert into tb_product(product_no,product_name,brand_no,team_no) values('DER-NS-02','戴尔平板','B201','DZ01-XZ02');
insert into tb_product(product_no,product_name,brand_no,team_no) values('HP-NS-04','惠普笔记本','B202','DZ01-XZ02');
insert into tb_product(product_no,product_name,brand_no,team_no) values('HP-NS-05','惠普平板','B202','DZ01-XZ02');
insert into tb_product(product_no,product_name,brand_no,team_no) values('LX-HF-01','联想打印机','B301','DZ02-XZ03');
insert into tb_product(product_no,product_name,brand_no,team_no) values('LX-HF-02','联想三合一一体机','B301','DZ02-XZ03');
insert into tb_product(product_no,product_name,brand_no,team_no) values('XD-HF-01','兄弟打印机','B302','DZ02-XZ03');
insert into tb_product(product_no,product_name,brand_no,team_no) values('XD-HF-02','兄弟五合一一体机','B302','DZ02-XZ03');
insert into tb_product(product_no,product_name,brand_no,team_no) values('JC-SF-01','京瓷复印机','B401','DZ02-XZ04');
insert into tb_product(product_no,product_name,brand_no,team_no) values('JC-SF-02','京瓷一体机','B401','DZ02-XZ04');
insert into tb_product(product_no,product_name,brand_no,team_no) values('XP-SR-01','夏普复印机','B402','DZ02-XZ04');
insert into tb_product(product_no,product_name,brand_no,team_no) values('XP-SR-02','夏普一体机','B402','DZ02-XZ04');
/*
-- 查询表中的数据
select p.product_no,p.product_name,
b.brand_name,t.team_no,t.team_name,t.team_header
from tb_product p,tb_brand b,tb_team t
where p.team_no=t.team_no and p.brand_no=b.brand_no;
*/
mysql> select p.product_no,p.product_name,
-> b.brand_name,t.team_no,t.team_name,t.team_header
-> from tb_product p,tb_brand b,tb_team t
-> where p.team_no=t.team_no and p.brand_no=b.brand_no;
+------------+-------------+------------+-----------+----------------+-------------+
| product_no | product_name | brand_name | team_no | team_name | team_header |
+------------+-------------+------------+-----------+----------------+-------------+
| FZ-NS-01 | 方正台式机 | 方正 | DZ01-XZ01 | 台式机销售小组 | 诸葛亮 |
| FZ-NS-02 | 方正一体机 | 方正 | DZ01-XZ01 | 台式机销售小组 | 诸葛亮 |
| SZ_HF-01 | 神州台式机 | 神州 | DZ01-XZ01 | 台式机销售小组 | 诸葛亮 |
| SZ_HF-02 | 神州一体机 | 神州 | DZ01-XZ01 | 台式机销售小组 | 诸葛亮 |
| DER-NS-01 | 戴尔笔记本 | 戴尔 | DZ01-XZ02 | 笔记本销售小组 | 庞统 |
| DER-NS-02 | 戴尔平板 | 戴尔 | DZ01-XZ02 | 笔记本销售小组 | 庞统 |
| HP-NS-04 | 惠普笔记本 | 惠普 | DZ01-XZ02 | 笔记本销售小组 | 庞统 |
| HP-NS-05 | 惠普平板 | 惠普 | DZ01-XZ02 | 笔记本销售小组 | 庞统 |
| LX-HF-01 | 联想打印机 | 联想 | DZ02-XZ03 | 打印机销售小组 | 司马懿 |
| LX-HF-02 | 联想三合一一体机 | 联想 | DZ02-XZ03 | 打印机销售小组 | 司马懿 |
| XD-HF-01 | 兄弟打印机 | 兄弟 | DZ02-XZ03 | 打印机销售小组 | 司马懿 |
| XD-HF-02 | 兄弟五合一一体机 | 兄弟 | DZ02-XZ03 | 打印机销售小组 | 司马懿 |
| JC-SF-01 | 京瓷复印机 | 京瓷 | DZ02-XZ04 | 复印机销售小组 | 徐庶 |
| JC-SF-02 | 京瓷一体机 | 京瓷 | DZ02-XZ04 | 复印机销售小组 | 徐庶 |
| XP-SR-01 | 夏普复印机 | 夏普 | DZ02-XZ04 | 复印机销售小组 | 徐庶 |
| XP-SR-02 | 夏普一体机 | 夏普 | DZ02-XZ04 | 复印机销售小组 | 徐庶 |
+------------+-------------+------------+-----------+----------------+-------------+
16 rows in set (0.00 sec)
3、商品链接表
表结构如下:
-- ====================================================================================
-- 3、商品链接表
-- 表名:商品链接(商品链接,SKU)
-- 表名:tb_goods
-- 列名:goods_id(商品id),goods_no(商品编号),goods_name(商品名称),
-- 规格(specification),计量单位(unit),product_no(产品编号),
-- store_no(店铺编号),goods_remark(商品备注)
-- 外键:product_no,与产品表(tb_product)的主键(product_no)对应。
-- ====================================================================================
DROP TABLE IF EXISTS `tb_goods`;
CREATE TABLE `tb_goods` (
`goods_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id',
`goods_no` char(20) NOT NULL DEFAULT '' COMMENT '商品编号',
`goods_name` char(50) NOT NULL DEFAULT '' COMMENT '商品名称',
`specification` char(30) NOT NULL DEFAULT '' COMMENT '规格',
`unit` char(20) NOT NULL DEFAULT '' COMMENT '计量单位',
`product_no` char(20) NOT NULL DEFAULT '' COMMENT '产品编号',
`store_no` char(20) NOT NULL DEFAULT '' COMMENT '店铺编号',
`goods_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '商品备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`goods_id`),
UNIQUE KEY `goods_goods_no` (`goods_no`),
KEY `goods_product_no` (`product_no`),
KEY `goods_store_no` (`store_no`),
KEY `idx_goods_name` (`goods_name`),
CONSTRAINT `fk_goods_product` FOREIGN KEY (`product_no`) REFERENCES `tb_product` (`product_no`),
CONSTRAINT `fk_goods_store` FOREIGN KEY (`store_no`) REFERENCES `tb_store` (`store_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '商品(商品链接,SKU)表。外键:product_no,与产品表(tb_product)的主键(product_no)对应。';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071245001','方正台式机-黑色24寸','FZ-NS-01','FZDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071245002','方正台式机-白色21寸','FZ-NS-01','FZDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071245003','方正一体机-黑色','FZ-NS-02','FZDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245723001','方正台式机-黑色24寸','FZ-NS-01','FZDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245723002','方正台式机-白色21寸','FZ-NS-01','FZDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245723003','方正一体机-黑色','FZ-NS-02','FZDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071302001','神州台式机-黑色','SZ_HF-01','SZDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071302002','神州一体机-黑色','SZ_HF-02','SZDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071302003','神州一体机-白色','SZ_HF-02','SZDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245487001','神州台式机-黑色','SZ_HF-01','SZDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245487002','神州一体机-黑色','SZ_HF-02','SZDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245487003','神州一体机-白色','SZ_HF-02','SZDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071307001','戴尔笔记本15.6寸','DER-NS-01','DERDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071307002','戴尔笔记本13寸玫瑰金','DER-NS-01','DERDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071307003','戴尔平板air','DER-NS-02','DERDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245206001','戴尔笔记本15.6寸','DER-NS-01','DERDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245206002','戴尔笔记本13寸玫瑰金','DER-NS-01','DERDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245206003','戴尔平板air','DER-NS-02','DERDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071482001','惠普笔记本14寸','HP-NS-04','HPDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071482002','惠普平板电脑10寸','HP-NS-05','HPDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071482003','惠普平板电脑12寸','HP-NS-05','HPDN-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245377001','惠普笔记本14寸','HP-NS-04','HPDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245377002','惠普平板电脑10寸','HP-NS-05','HPDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245377003','惠普平板电脑12寸','HP-NS-05','HPDN-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071333001','联想激光打印机','LX-HF-01','LX-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071333002','联想喷墨打印机','LX-HF-01','LX-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071333003','联想打印复印扫描一体机','LX-HF-02','LX-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245444001','联想激光打印机','LX-HF-01','LX-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245444002','联想喷墨打印机','LX-HF-01','LX-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245444003','联想打印复印扫描一体机','LX-HF-02','LX-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071566001','兄弟激光打印机','XD-HF-01','XD-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071566002','兄弟喷墨打印机','XD-HF-01','XD-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071566003','兄弟打印复印扫描一体机','XD-HF-02','XD-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245777001','兄弟激光打印机','XD-HF-01','XD-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245777002','兄弟喷墨打印机','XD-HF-01','XD-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245777003','兄弟打印复印扫描一体机','XD-HF-02','XD-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071128001','京瓷黑白复印机','JC-SF-01','JC-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071128002','京瓷彩色复印机','JC-SF-01','JC-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071128003','京瓷复合一体机','JC-SF-02','JC-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245625001','京瓷黑白复印机','JC-SF-01','JC-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245625002','京瓷彩色复印机','JC-SF-01','JC-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245625003','京瓷复合一体机','JC-SF-02','JC-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071317001','夏普彩色复印机','XP-SR-01','XP-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071317002','夏普黑白复印机','XP-SR-01','XP-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('62071317003','夏普复合一体机','XP-SR-02','XP-TM001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245338001','夏普彩色复印机','XP-SR-01','XP-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245338002','夏普黑白复印机','XP-SR-01','XP-JD001');
insert into tb_goods(goods_no,goods_name,product_no,store_no) values('73245338003','夏普复合一体机','XP-SR-02','XP-JD001');
/*
-- 查询表中的数据
select g.goods_no,g.goods_name,
p.product_no,p.product_name,
s.store_no,s.store_name
from tb_goods g,tb_product p,tb_store s
where g.product_no=p.product_no and g.store_no=s.store_no;
*/
mysql> select g.goods_no,g.goods_name,
-> p.product_no,p.product_name,
-> s.store_no,s.store_name
-> from tb_goods g,tb_product p,tb_store s
-> where g.product_no=p.product_no and g.store_no=s.store_no;
+-------------+---------------+------------+------------+-----------+---------------+
| goods_no | goods_name | product_no|product_name| store_no | store_name |
+-------------+---------------+------------+------------+-----------+---------------+
| 62071245001 | 方正台式机-黑色24寸| FZ-NS-01 | 方正台式机 | FZDN-TM001| 方正电脑天猫旗舰店|
| 62071245002 | 方正台式机-白色21寸| FZ-NS-01 | 方正台式机 | FZDN-TM001| 方正电脑天猫旗舰店|
| 73245723001 | 方正台式机-黑色24寸| FZ-NS-01 | 方正台式机 | FZDN-JD001| 方正电脑京东旗舰店|
| 73245723002 | 方正台式机-白色21寸| FZ-NS-01 | 方正台式机 | FZDN-JD001| 方正电脑京东旗舰店|
| 62071245003 | 方正一体机-黑色 | FZ-NS-02 | 方正一体机 | FZDN-TM001| 方正电脑天猫旗舰店|
| 73245723003 | 方正一体机-黑色 | FZ-NS-02 | 方正一体机 | FZDN-JD001| 方正电脑京东旗舰店|
| 62071302001 | 神州台式机-黑色 | SZ_HF-01 | 神州台式机 | SZDN-TM001| 神州电脑天猫旗舰店|
| 73245487001 | 神州台式机-黑色 | SZ_HF-01 | 神州台式机 | SZDN-JD001| 神州电脑京东旗舰店|
| 62071302002 | 神州一体机-黑色 | SZ_HF-02 | 神州一体机 | SZDN-TM001| 神州电脑天猫旗舰店|
| 62071302003 | 神州一体机-白色 | SZ_HF-02 | 神州一体机 | SZDN-TM001| 神州电脑天猫旗舰店|
| 73245487002 | 神州一体机-黑色 | SZ_HF-02 | 神州一体机 | SZDN-JD001| 神州电脑京东旗舰店|
| 73245487003 | 神州一体机-白色 | SZ_HF-02 | 神州一体机 | SZDN-JD001| 神州电脑京东旗舰店|
| 62071307001 | 戴尔笔记本15.6寸 | DER-NS-01| 戴尔笔记本 | DERDN-TM001| 戴尔电脑天猫旗舰店|
| 62071307002 | 戴尔笔记本13寸玫瑰金| DER-NS-01| 戴尔笔记本 | DERDN-TM001| 戴尔电脑天猫旗舰店|
| 73245206001 | 戴尔笔记本15.6寸 | DER-NS-01| 戴尔笔记本 | DERDN-JD001| 戴尔电脑京东旗舰店|
| 73245206002 | 戴尔笔记本13寸玫瑰金| DER-NS-01| 戴尔笔记本 | DERDN-JD001| 戴尔电脑京东旗舰店|
| 62071307003 | 戴尔平板air | DER-NS-02| 戴尔平板 | DERDN-TM001| 戴尔电脑天猫旗舰店|
| 73245206003 | 戴尔平板air | DER-NS-02| 戴尔平板 | DERDN-JD001| 戴尔电脑京东旗舰店|
| 62071482001 | 惠普笔记本14寸 | HP-NS-04 | 惠普笔记本 | HPDN-TM001| 惠普电脑天猫旗舰店 |
| 73245377001 | 惠普笔记本14寸 | HP-NS-04 | 惠普笔记本 | HPDN-JD001| 惠普电脑京东旗舰店 |
| 62071482002 | 惠普平板电脑10寸 | HP-NS-05 | 惠普平板 | HPDN-TM001| 惠普电脑天猫旗舰店 |
| 62071482003 | 惠普平板电脑12寸 | HP-NS-05 | 惠普平板 | HPDN-TM001| 惠普电脑天猫旗舰店 |
| 73245377002 | 惠普平板电脑10寸 | HP-NS-05 | 惠普平板 | HPDN-JD001| 惠普电脑京东旗舰店 |
| 73245377003 | 惠普平板电脑12寸 | HP-NS-05 | 惠普平板 | HPDN-JD001| 惠普电脑京东旗舰店 |
| 62071333001 | 联想激光打印机 | LX-HF-01 | 联想打印机 | LX-TM001 | 联想办公用品天猫旗舰店|
| 62071333002 | 联想喷墨打印机 | LX-HF-01 | 联想打印机 | LX-TM001 | 联想办公用品天猫旗舰店|
| 73245444001 | 联想激光打印机 | LX-HF-01 | 联想打印机 | LX-JD001 | 联想办公用品京东旗舰店|
| 73245444002 | 联想喷墨打印机 | LX-HF-01 | 联想打印机 | LX-JD001 | 联想办公用品京东旗舰店|
| 62071333003 | 联想打印复印扫描一体机|LX-HF-02|联想三合一一体机|LX-TM001| 联想办公用品天猫旗舰店|
| 73245444003 | 联想打印复印扫描一体机|LX-HF-02|联想三合一一体机|LX-JD001| 联想办公用品京东旗舰店|
| 62071566001 | 兄弟激光打印机 | XD-HF-01| 兄弟打印机 | XD-TM001| 兄弟办公用品天猫旗舰店|
| 62071566002 | 兄弟喷墨打印机 | XD-HF-01| 兄弟打印机 | XD-TM001| 兄弟办公用品天猫旗舰店|
| 73245777001 | 兄弟激光打印机 | XD-HF-01| 兄弟打印机 | XD-JD001| 兄弟办公用品京东旗舰店|
| 73245777002 | 兄弟喷墨打印机 | XD-HF-01| 兄弟打印机 | XD-JD001| 兄弟办公用品京东旗舰店|
| 62071566003 | 兄弟打印复印扫描一体机|XD-HF-02|兄弟五合一一体机|XD-TM001| 兄弟办公用品天猫旗舰店|
| 73245777003 | 兄弟打印复印扫描一体机|XD-HF-02|兄弟五合一一体机|XD-JD001| 兄弟办公用品京东旗舰店|
| 62071128001 | 京瓷黑白复印机 | JC-SF-01| 京瓷复印机 | JC-TM001| 京瓷办公用品天猫旗舰店|
| 62071128002 | 京瓷彩色复印机 | JC-SF-01| 京瓷复印机 | JC-TM001| 京瓷办公用品天猫旗舰店|
| 73245625001 | 京瓷黑白复印机 | JC-SF-01| 京瓷复印机 | JC-JD001| 京瓷办公用品京东旗舰店|
| 73245625002 | 京瓷彩色复印机 | JC-SF-01| 京瓷复印机 | JC-JD001| 京瓷办公用品京东旗舰店|
| 62071128003 | 京瓷复合一体机 | JC-SF-02| 京瓷一体机 | JC-TM001| 京瓷办公用品天猫旗舰店|
| 73245625003 | 京瓷复合一体机 | JC-SF-02| 京瓷一体机 | JC-JD001| 京瓷办公用品京东旗舰店|
| 62071317001 | 夏普彩色复印机 | XP-SR-01| 夏普复印机 | XP-TM001| 夏普办公用品天猫旗舰店|
| 62071317002 | 夏普黑白复印机 | XP-SR-01| 夏普复印机 | XP-TM001| 夏普办公用品天猫旗舰店|
| 73245338001 | 夏普彩色复印机 | XP-SR-01| 夏普复印机 | XP-JD001| 夏普办公用品京东旗舰店|
| 73245338002 | 夏普黑白复印机 | XP-SR-01| 夏普复印机 | XP-JD001| 夏普办公用品京东旗舰店|
| 62071317003 | 夏普复合一体机 | XP-SR-02| 夏普一体机 | XP-TM001| 夏普办公用品天猫旗舰店|
| 73245338003 | 夏普复合一体机 | XP-SR-02| 夏普一体机 | XP-JD001| 夏普办公用品京东旗舰店|
+-------------+---------------+------------+------------+-----------+---------------+
48 rows in set (0.01 sec)
4、产品套装表
表结构如下:
-- ====================================================================================
-- 4、产品套装表(商品链接-套装商品)
-- 表名:tb_packaged
-- 列名:packaged_id(产品套装id),packaged_no(产品套装编号),
-- packaged_name(产品套装名称),store_no(店铺编号),
-- quantity_of_products(包含产品数量),packaged_remark(产品套装备注)
-- ====================================================================================
DROP TABLE IF EXISTS `tb_packaged`;
CREATE TABLE `tb_packaged` (
`packaged_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '产品套装id',
`packaged_no` char(20) NOT NULL DEFAULT '' COMMENT '产品套装编号',
`packaged_name` char(50) NOT NULL DEFAULT '' COMMENT '产品套装名称',
`quantity_of_products` int(11) NOT NULL DEFAULT '0' COMMENT '包含产品数量',
`store_no` char(20) NOT NULL DEFAULT '' COMMENT '店铺编号',
`packaged_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '产品套装备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`packaged_id`),
UNIQUE KEY `packaged_packaged_no` (`packaged_no`),
KEY `packaged_store_no` (`store_no`),
KEY `idx_packaged_name` (`packaged_name`),
CONSTRAINT `fk_packaged_store` FOREIGN KEY (`store_no`) REFERENCES `tb_store` (`store_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '产品套装表';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
INSERT INTO tb_packaged(packaged_no,packaged_name,quantity_of_products,store_no)
VALUES('62071128773','京瓷彩色、复合机两件套',2,'JC-TM001');
INSERT INTO tb_packaged(packaged_no,packaged_name,quantity_of_products,store_no)
VALUES('73245338652','夏普黑白、复合机两件套',2,'XP-TM001');
/*
-- 查询表中的数据
select p.packaged_no,p.packaged_name,p.quantity_of_products,
s.store_no,s.store_name
from tb_packaged p,tb_store s
where p.store_no=s.store_no;
*/
mysql> select p.packaged_no,p.packaged_name,p.quantity_of_products,
-> s.store_no,s.store_name
-> from tb_packaged p,tb_store s
-> where p.store_no=s.store_no;
+-------------+--------------------+--+----------+--------------------------------+
| packaged_no | packaged_name | quantity_of_products | store_no | store_name |
+-------------+--------------------+--+----------+--------------------------------+
| 62071128773 | 京瓷彩色、复合机两件套 | 2 | JC-TM001 | 京瓷办公用品天猫旗舰店 |
| 73245338652 | 夏普黑白、复合机两件套 | 2 | XP-TM001 | 夏普办公用品天猫旗舰店 |
+-------------+--------------------+--+----------+--------------------------------+
2 rows in set (0.00 sec)
5、【产品-套装】对应关系表
表结构如下:
-- ====================================================================================
-- 5、【产品-套装】对应关系表
-- 表名:tb_product_packaged_relation
-- 列名:product_packaged_id(商品套装对应关系id),packaged_no(商品套装编号),
-- product_no(产品编号),sales_proportion(商品销售所占比例),
-- product_packaged_remark(备注)
-- 外键:packaged_no,与套装商品表(tb_packaged)的主键(packaged_no)对应。
-- 外键:product_no,与产品表(tb_product)的主键(product_no)对应。
-- 说明:产品和套装是多对多联系,一个套装包含多个产品,一个产品可以包含在多个套装中。
-- ====================================================================================
DROP TABLE IF EXISTS `tb_product_packaged_relation`;
CREATE TABLE `tb_product_packaged_relation` (
`product_packaged_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品套装对应关系id',
`packaged_no` char(20) NOT NULL DEFAULT '' COMMENT '商品套装编号',
`product_no` char(20) NOT NULL DEFAULT '' COMMENT '商品编号',
`sales_proportion` decimal(4,3) NOT NULL DEFAULT '0.000' COMMENT '商品销售所占比例(小数:0.35,0.65等)-- 套装包含的所有商品所占销售比例之和应为1',
`product_packaged_remark` varchar(2000) NOT NULL DEFAULT '' COMMENT '备注',
`user_create_by` int comment '插入记录的用户id',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP comment '插入时间',
`user_update_by` int comment '更新记录的用户id',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '最后更新时间',
`deleted_at` timestamp NULL comment '记录删除时间',
PRIMARY KEY (`product_packaged_id`),
UNIQUE KEY `ppr_packaged_no_product_no` (`packaged_no`,`product_no`),
KEY `product_packaged_relation_packaged_no` (`packaged_no`),
KEY `product_packaged_relation_product_no` (`product_no`),
CONSTRAINT `fk_product_packaged_relation_packaged` FOREIGN KEY (`packaged_no`) REFERENCES `tb_packaged` (`packaged_no`),
CONSTRAINT `fk_product_packaged_relation_product` FOREIGN KEY (`product_no`) REFERENCES `tb_product` (`product_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT '商品_套装对应关系表。外键1:packaged_no,与套装商品表(tb_packaged)的主键(packaged_no)对应。外键2:product_no,与产品表(tb_product)的主键(product_no)对应。';
表中的模拟数据如下:
-- ====================================================================================
-- 插入示例数据
-- ====================================================================================
INSERT INTO tb_product_packaged_relation(packaged_no,product_no,sales_proportion)
VALUES('62071128773','JC-SF-01',0.72);
INSERT INTO tb_product_packaged_relation(packaged_no,product_no,sales_proportion)
VALUES('62071128773','JC-SF-02',0.28);
INSERT INTO tb_product_packaged_relation(packaged_no,product_no,sales_proportion)
VALUES('73245338652','XP-SR-01',0.4);
INSERT INTO tb_product_packaged_relation(packaged_no,product_no,sales_proportion)
VALUES('73245338652','XP-SR-02',0.6);
/*
-- 查询表中的数据
select ppr.packaged_no,pa.packaged_name,
ppr.product_no,p.product_name,ppr.sales_proportion
from tb_product_packaged_relation ppr,tb_product p,tb_packaged pa
where ppr.product_no=p.product_no and ppr.packaged_no=pa.packaged_no;
*/
mysql> select ppr.packaged_no,pa.packaged_name,
-> ppr.product_no,p.product_name,ppr.sales_proportion
-> from tb_product_packaged_relation ppr,tb_product p,tb_packaged pa
-> where ppr.product_no=p.product_no and ppr.packaged_no=pa.packaged_no;
+-------------+--------------------+------------+---------------+------------------+
| packaged_no | packaged_name | product_no | product_name | sales_proportion |
+-------------+--------------------+------------+---------------+------------------+
| 62071128773 | 京瓷彩色、复合机两件套 | JC-SF-01 | 京瓷复印机 | 0.720 |
| 62071128773 | 京瓷彩色、复合机两件套 | JC-SF-02 | 京瓷一体机 | 0.280 |
| 73245338652 | 夏普黑白、复合机两件套 | XP-SR-01 | 夏普复印机 | 0.400 |
| 73245338652 | 夏普黑白、复合机两件套 | XP-SR-02 | 夏普一体机 | 0.600 |
+-------------+--------------------+------------+---------------+------------------+
4 rows in set (0.00 sec)
最后
以上就是忐忑流沙为你收集整理的某电商网站的数据库设计(1)——基础信息数据表的设计的全部内容,希望文章能够帮你解决某电商网站的数据库设计(1)——基础信息数据表的设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复