我是靠谱客的博主 忐忑流沙,最近开发中收集的这篇文章主要介绍某电商网站的数据库设计(1)——基础信息数据表的设计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

某电商网站的数据库设计(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)——基础信息数据表的设计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部