关系数据库场景建模例子(by GPT)

场景

一个买卖应用,商品A/B/C,商品价格,运营活动,普通优惠券,活动特别优惠券,有效期等等。请根据这种场景,设计一个典型的数据库表设计。

设计

商品 (products) 是核心,活动 (campaigns) 和优惠券 (coupons) 都可以作用于商品。

通过活动商品关联表 (campaign_products) 和活动特别优惠券表 (campaign_coupons),实现了对不同场景的灵活支持。

订单表和订单商品表确保了用户的购买行为能够被详细记录。

数据库表建模

数据库表设计

1. 商品表(products

用于存储商品的基本信息。

字段名 数据类型 描述
id INT (主键) 商品唯一标识
name VARCHAR(255) 商品名称
description TEXT 商品描述
price DECIMAL(10,2) 商品原价
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间

2. 运营活动表(campaigns

存储运营活动的信息。

字段名 数据类型 描述
id INT (主键) 活动唯一标识
name VARCHAR(255) 活动名称
description TEXT 活动描述
start_date DATE 活动开始日期
end_date DATE 活动结束日期
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间

3. 活动商品关联表(campaign_products

用于关联商品和活动。

字段名 数据类型 描述
id INT (主键) 记录唯一标识
campaign_id INT (外键) 关联的活动ID
product_id INT (外键) 关联的商品ID
discount_price DECIMAL(10,2) 活动特价
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间

4. 普通优惠券表(coupons

存储普通优惠券的信息。

字段名 数据类型 描述
id INT (主键) 优惠券唯一标识
code VARCHAR(50) 优惠券代码
discount_type ENUM 优惠类型(percentagefixed
discount_value DECIMAL(10,2) 优惠金额或折扣比例
min_spend DECIMAL(10,2) 最低消费金额(可为空)
valid_from DATE 有效期开始
valid_to DATE 有效期结束
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间

5. 活动特别优惠券表(campaign_coupons

存储活动中特别优惠券的信息。

字段名 数据类型 描述
id INT (主键) 特别优惠券唯一标识
campaign_id INT (外键) 关联的活动ID
code VARCHAR(50) 特别优惠券代码
discount_value DECIMAL(10,2) 优惠金额
valid_from DATE 有效期开始
valid_to DATE 有效期结束
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间

6. 订单表(orders

存储用户的订单信息。

字段名 数据类型 描述
id INT (主键) 订单唯一标识
user_id INT 用户ID
total_amount DECIMAL(10,2) 订单总金额
discount_amount DECIMAL(10,2) 优惠金额
final_amount DECIMAL(10,2) 实际支付金额
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间

7. 订单商品表(order_items

存储订单中商品的详情。

字段名 数据类型 描述
id INT (主键) 记录唯一标识
order_id INT (外键) 关联的订单ID
product_id INT (外键) 关联的商品ID
quantity INT 购买数量
price DECIMAL(10,2) 单价
total_price DECIMAL(10,2) 商品总价
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间

8. 用户优惠券表(user_coupons

记录用户领取的优惠券。

字段名 数据类型 描述
id INT (主键) 记录唯一标识
user_id INT 用户ID
coupon_id INT (外键) 关联的优惠券ID
is_used BOOLEAN 是否已使用
used_at TIMESTAMP 使用时间(可为空)
created_at TIMESTAMP 创建时间
updated_at TIMESTAMP 更新时间
posted @   ffl  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示