电商平台设计1.建表
business order
1.业务场景
一个电商平台需要记录
- 客户信息
- 产品信息
- 订单信息
- 订单明细(每个订单的产品及数量)
要求:
- 每个客户可以有多个订单
- 每个订单可以包含多种产品
- 需要支持统计每个客户总消费,销量排行等报表
2.表设计
1 | #创建库 |
Customers表(客户)
| 字段名 | 数据类型 | 约束 | 说明 |
|---|---|---|---|
| customer_id | INT | PRIMARY | 客户唯一编号 |
| name | VARCHAR(50) | NOT NULL | 客户姓名 |
| VARCHAR(100) | UNIQUE | 客户邮箱 |
1 | CREATE TABLE Customers( |
Products表(产品)
| 字段名 | 数据类型 | 约束 | 说明 |
|---|---|---|---|
| product_id | INT | PRIMARY KEY | 产品唯一编号 |
| product_name | VARCHAR(100) | NOT NULL | 产品名称 |
| price | DECIMAY | NOT NULL | 产品单价 |
1 | CREATER TABLE Products( |
Orders表(订单)
| 字段名 | 数据类型 | 约束 | 说明 |
|---|---|---|---|
| order_id | INT | PRIMARY | 订单编号 |
| customer_id | INT | FOREIGN KEY->Customers(customer_id) | 下单客户 |
| order_date | DATE | NOT NULL | 下单日期 |
1 | CREATE TABLE Orders( |
OrderItems表(订单明细)
| 字段名 | 数据类型 | 约束 | 说明 |
|---|---|---|---|
| order_item | INT | PRIMARY KEY | 明细唯一编号 |
| order_id | INT | FOREIGN KEY->Orders(order_id) | 所属订单 |
| product_id | INT | FOREIGN KEY->Products(product_id) | 产品 |
| quantity | INT | NOT NULL | 数量 |
1 | CREATE TABLE OrderItems( |
3.插入示例数据
1 | #--Customers |
多表聚合分析示例
统计每个产品销量
1 | p.product name, |
结果示例:
| product_name | total_sold |
|---|---|
| 充电宝 | 3 |
| 耳机 | 2 |
| 手机 | 1 |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
