<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>综合 on 老张开工了</title>
    <link>/%E7%BB%BC%E5%90%88/</link>
    <description>Recent content in 综合 on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 05 Mar 2025 10:00:00 +0800</lastBuildDate>
    <atom:link href="/%E7%BB%BC%E5%90%88/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>实战项目：电商数据库设计</title>
      <link>/posts/2025/03/ecommerce-database-project/</link>
      <pubDate>Wed, 05 Mar 2025 10:00:00 +0800</pubDate>
      <guid>/posts/2025/03/ecommerce-database-project/</guid>
      <description>本章将综合运用本系列所学的全部知识，设计一个完整的电商数据库系统——从需求分析、表结构设计、到高级查询和性能优化。&#xA;项目需求概述 构建一个支持多用户、多商品的电商平台后台数据库，主要功能包括：&#xA;用户注册与登录 商品浏览与搜索 购物车与下单 订单管理与支付 商品评价 后台数据分析 E-R 图 ┌──────────┐ ┌──────────────┐ ┌────────────┐ │ 用户 │──────→│ 购物车 │──────→│ 商品 │ └──────────┘ └──────────────┘ └────────────┘ ↓ ↑ ┌──────────┐ ┌──────────────┐ ┌──────────────┐ │ 地址 │ │ 订单 │──────→│ 订单明细 │ └──────────┘ └──────────────┘ └──────────────┘ ↓ ┌──────────────┐ ┌──────────────┐ │ 支付记录 │ │ 商品评价 │ └──────────────┘ └──────────────┘ 数据库设计与建表 -- 创建数据库 CREATE DATABASE ecommerce; \c ecommerce -- ============================ -- 1. 用户模块 -- ============================ CREATE TABLE es_users ( user_id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, email VARCHAR(200) UNIQUE NOT NULL, password_hash VARCHAR(255) NOT NULL, phone VARCHAR(20), avatar_url TEXT, member_level VARCHAR(10) DEFAULT &amp;#39;普通&amp;#39; CHECK (member_level IN (&amp;#39;普通&amp;#39;, &amp;#39;银卡&amp;#39;, &amp;#39;金卡&amp;#39;, &amp;#39;钻石&amp;#39;)), status VARCHAR(10) DEFAULT &amp;#39;active&amp;#39; CHECK (status IN (&amp;#39;active&amp;#39;, &amp;#39;locked&amp;#39;, &amp;#39;deleted&amp;#39;)), created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- 用户地址表 CREATE TABLE es_user_addresses ( address_id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL REFERENCES es_users(user_id), receiver_name VARCHAR(50) NOT NULL, receiver_phone VARCHAR(20) NOT NULL, province VARCHAR(50), city VARCHAR(50), district VARCHAR(50), detail_address TEXT NOT NULL, is_default BOOLEAN DEFAULT false, created_at TIMESTAMPTZ DEFAULT NOW() ); -- ============================ -- 2.</description>
    </item>
  </channel>
</rss>
