CodeGym /课程 /SQL SELF /Marketplace 数据库架构

Marketplace 数据库架构

SQL SELF
第 61 级, 课程 0
可用

既然你们都已经掌握了基础知识,是时候在真实项目里试试身手啦。一般来说,实际项目的数据库可以分为:

  • 小型 - 不超过 100 个表
  • 中型 - 100 到 1000 个表
  • 大型 - 超过 1000 个表

没经验的话,真的很难想象为啥要 100+ 个表。所以今天我就给你们这个机会,体验一下 :)

我会给你们一个真实的 e-commerce 平台(Marketplace)关系型数据库。这个库被分成了多个 schema,每个 schema 负责一个具体的业务领域:用户、商品、订单、物流、营销、客服等等。

整个项目一共有109 个表,分布在 11 个 schema 里。每个表都配好了外键,还支持用字典表和系统表扩展。

数据库结构

Schema user — 用户和活跃度

user schema 里有账号、个人资料、联系方式、登录日志、评价和社交关系的表。

表举例:

  • account — 注册信息
  • profile — 个人信息
  • review, comment — 评价和评论

Schema product — 商品和目录

product schema 里有商品描述、变体、属性、图片、状态和变更历史。

表举例:

  • product, variant — 商品和规格
  • attribute, tag — 属性和标签
  • supplier, composition — 供应商和成分

Schema order — 订单和购物车

包含下单、订单追踪、状态、退货和支付的机制。

表举例:

  • order, order_item
  • status_log, return, cancellation
  • invoice, discount

Schema logistics — 仓库、配送、路线

管理库存、调拨、配送和路线。

表举例:

  • warehouse, inventory, transfer
  • shipping_method, package
  • driver, carrier, route

Schema payment — 支付和交易

存储支付系统、交易、钱包和退款信息。

表举例:

  • payment, transaction, refund
  • wallet, wallet_transaction
  • gateway, method

Schema marketing — 活动和广告

有优惠码、横幅、推荐计划和精选商品的表。

表举例:

  • campaign, promo_code, discount
  • referral_program, featured_product

Schema support — 技术支持

工单系统、消息、状态和客服评价。

表举例:

  • ticket, ticket_message, ticket_status
  • agent, feedback

Schema analytics — 指标和行为

追踪 session、用户行为、转化和各种指标。

表举例:

  • event, session, click, page_view
  • goal, metric_snapshot

Schema admin — 管理和配置

管理员、角色、审计日志和系统设置的表。

表举例:

  • admin, admin_role
  • audit_log, setting, api_token

Schema content — 静态页面和区块

CMS 内容:页面、菜单、翻译和版本。

表举例:

  • page, block, menu, translation, version

Schema ref — 字典和元表

类型、状态、国家、退货原因等。

表举例:

  • country, currency, status, payment_status
  • refund_reason, inventory_change_reason

创建表

为了让你们更轻松,我会直接给你们所有表的建表脚本。

你只需要下载 SQL 脚本,然后运行就行了。

  1. 在 PostgreSQL 中创建一个空的数据库。
  2. 下载模式。
  3. 导入数据库结构:
psql -U postgres -d marketplace_db < init_schema.sql

加载数据

还有所有表的数据。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION