既然你们都已经掌握了基础知识,是时候在真实项目里试试身手啦。一般来说,实际项目的数据库可以分为:
- 小型 - 不超过 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_itemstatus_log,return,cancellationinvoice,discount
Schema logistics — 仓库、配送、路线
管理库存、调拨、配送和路线。
表举例:
warehouse,inventory,transfershipping_method,packagedriver,carrier,route
Schema payment — 支付和交易
存储支付系统、交易、钱包和退款信息。
表举例:
payment,transaction,refundwallet,wallet_transactiongateway,method
Schema marketing — 活动和广告
有优惠码、横幅、推荐计划和精选商品的表。
表举例:
campaign,promo_code,discountreferral_program,featured_product
Schema support — 技术支持
工单系统、消息、状态和客服评价。
表举例:
ticket,ticket_message,ticket_statusagent,feedback
Schema analytics — 指标和行为
追踪 session、用户行为、转化和各种指标。
表举例:
event,session,click,page_viewgoal,metric_snapshot
Schema admin — 管理和配置
管理员、角色、审计日志和系统设置的表。
表举例:
admin,admin_roleaudit_log,setting,api_token
Schema content — 静态页面和区块
CMS 内容:页面、菜单、翻译和版本。
表举例:
page,block,menu,translation,version
Schema ref — 字典和元表
类型、状态、国家、退货原因等。
表举例:
country,currency,status,payment_statusrefund_reason,inventory_change_reason
创建表
为了让你们更轻松,我会直接给你们所有表的建表脚本。
你只需要下载 SQL 脚本,然后运行就行了。
- 在 PostgreSQL 中创建一个空的数据库。
- 下载模式。
- 导入数据库结构:
psql -U postgres -d marketplace_db < init_schema.sql
加载数据
还有所有表的数据。
GO TO FULL VERSION