业务背景
电子商务网站提供一个全面的在线购物体验,包括商品浏览、用户账户管理、购物车、订单处理、支付、商品评价、后台管理等功能。
业务模块说明
- 用户管理: 用户注册、登录、个人信息编辑、密码找回。
- 商品管理: 商品展示、库存管理、商品分类、商品标签、商品搜索优化。
- 订单处理: 购物车管理、订单生成、订单状态跟踪、订单取消和退货。
- 支付系统: 订单支付、支付状态管理、支付方式多样化。
- 商品评价: 用户对商品进行评价、查看评价、评价管理。
- 后台管理: 商品上架、订单管理、用户行为分析、报表生成。
- 营销活动: 优惠券发放、促销活动设置、活动效果跟踪。
- 内容管理: 网站内容更新、页面布局调整、SEO优化。
- 客户服务: 客户咨询、投诉处理、服务记录。
- 物流管理: 物流跟踪、配送设置、库存同步。
- 会员系统: 会员等级、积分管理、会员特权。
- 数据分析: 销售数据分析、用户行为分析、流量分析。
- 安全中心: 用户安全设置、数据加密、访问控制。
- 移动端适配: 移动端页面展示、功能适配、性能优化。
- API服务: 第三方平台对接、数据交换、服务监控。
- 社交媒体集成: 社交分享、用户社交账号登录。
- 个性化推荐: 根据用户行为推荐商品、智能推荐算法。
- 多语言支持: 适应不同语言用户、多语言内容展示。
- 多货币支持: 适应不同地区货币、货币转换。
- 用户行为跟踪: 用户点击、浏览、购买行为的跟踪与分析。
数据库表结构设计
用户管理
-
users
- user_id (PK, INT): 用户唯一标识。
- username (VARCHAR, UNIQUE): 用户名,需唯一。
- password_hash (VARCHAR): 密码的哈希值。
- email (VARCHAR, UNIQUE): 用户邮箱,需唯一。
- phone_number (VARCHAR, UNIQUE): 用户手机号,可选,需唯一。
- date_of_birth (DATE): 用户出生日期。
- created_at (DATETIME): 用户注册时间。
-
user_profiles
- profile_id (PK, INT): 用户资料ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- first_name (VARCHAR): 用户名。
- last_name (VARCHAR): 姓。
- gender (VARCHAR): 用户性别。
-
password_resets
- reset_id (PK, INT): 密码重置ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- token (VARCHAR): 重置密码的令牌。
- expiry_date (DATETIME): 令牌过期时间。
商品管理
-
products
- product_id (PK, INT): 商品唯一标识。
- name (VARCHAR): 商品名称。
- description (TEXT): 商品描述。
- price (DECIMAL): 商品价格。
- stock_quantity (INT): 库存数量。
- is_active (BOOLEAN): 是否上架。
-
categories
- category_id (PK, INT): 分类ID。
- name (VARCHAR): 分类名称。
- parent_id (INT, FK -> categories.category_id, NULLABLE): 父分类ID。
-
product_images
- image_id (PK, INT): 图片ID。
- product_id (INT, FK -> products.product_id): 关联的商品ID。
- image_url (VARCHAR): 图片URL。
- is_primary (BOOLEAN): 是否为主要图片。
-
tags
- tag_id (PK, INT): 标签ID。
- name (VARCHAR): 标签名称。
-
product_tags
- product_id (INT, FK -> products.product_id)
- tag_id (INT, FK -> tags.tag_id)
订单处理
-
shopping_carts
- cart_id (PK, INT): 购物车ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- created_at (DATETIME): 购物车创建时间。
-
cart_items
- item_id (PK, INT): 购物车商品项ID。
- cart_id (INT, FK -> shopping_carts.cart_id): 关联的购物车ID。
- product_id (INT, FK -> products.product_id): 关联的商品ID。
- quantity (INT): 商品数量。
- added_at (DATETIME): 商品添加到购物车的时间。
-
orders
- order_id (PK, INT): 订单ID。
- user_id (INT, FK -> users.user_id): 下单用户ID。
- status (VARCHAR): 订单状态。
- total_amount (DECIMAL): 订单总金额。
- payment_method (VARCHAR): 支付方式。
- created_at (DATETIME): 订单创建时间。
-
order_items
- item_id (PK, INT): 订单商品项ID。
- order_id (INT, FK -> orders.order_id): 关联的订单ID。
- product_id (INT, FK -> products.product_id): 关联的商品ID。
- quantity (INT): 商品数量。
- unit_price (DECIMAL): 商品单价。
支付系统
-
payments
- payment_id (PK, INT): 支付记录ID。
- order_id (INT, FK -> orders.order_id): 关联的订单ID。
- amount (DECIMAL): 支付金额。
- payment_method (VARCHAR): 支付方式。
- payment_status (VARCHAR): 支付状态。
- created_at (DATETIME): 支付时间。
商品评价
-
reviews
- review_id (PK, INT): 评价ID。
- user_id (INT, FK -> users.user_id): 评价用户ID。
- product_id (INT, FK -> products.product_id): 被评价商品ID。
- rating (INT): 评分。
- comment (TEXT): 评论内容。
- created_at (DATETIME): 评价时间。
后台管理
-
admin_users
- admin_id (PK, INT): 管理员ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
-
admin_actions
- action_id (PK, INT): 操作ID。
- admin_id (INT, FK -> admin_users.admin_id): 执行操作的管理员ID。
- action_type (VARCHAR): 操作类型。
- details (TEXT): 操作详情。
- created_at (DATETIME): 操作时间。
营销活动
-
promotions
- promotion_id (PK, INT): 促销活动ID。
- name (VARCHAR): 活动名称。
- start_date (DATETIME): 活动开始时间。
- end_date (DATETIME): 活动结束时间。
- description (TEXT): 活动描述。
-
coupons
- coupon_id (PK, INT): 优惠券ID。
- code (VARCHAR, UNIQUE): 优惠码。
- discount_amount (DECIMAL): 优惠金额。
- expiry_date (DATETIME): 过期时间。
内容管理
-
pages
- page_id (PK, INT): 页面ID。
- title (VARCHAR): 页面标题。
- content (TEXT): 页面内容。
- is_published (BOOLEAN): 是否发布。
-
seo
- seo_id (PK, INT): SEO配置ID。
- page_id (INT, FK -> pages.page_id): 关联的页面ID。
- meta_title (VARCHAR): Meta标题。
- meta_description (VARCHAR): Meta描述。
- meta_keywords (VARCHAR): Meta关键词。
客户服务
-
service_tickets
- ticket_id (PK, INT): 服务单ID。
- user_id (INT, FK -> users.user_id): 提交服务单的用户ID。
- subject (VARCHAR): 服务单主题。
- description (TEXT): 服务单详细描述。
- status (VARCHAR): 服务单状态。
- created_at (DATETIME): 服务单创建时间。
物流管理
-
shipping_methods
- method_id (PK, INT): 物流方式ID。
- name (VARCHAR): 物流方式名称。
- cost (DECIMAL): 物流成本。
-
order_shipments
- shipment_id (PK, INT): 物流ID。
- order_id (INT, FK -> orders.order_id): 关联的订单ID。
- method_id (INT, FK -> shipping_methods.method_id): 使用的物流方式ID。
- tracking_number (VARCHAR): 物流追踪号码。
会员系统
-
memberships
- membership_id (PK, INT): 会员ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- level (VARCHAR): 会员等级。
- start_date (DATETIME): 会员开始日期。
- end_date (DATETIME): 会员结束日期。
-
points
- point_id (PK, INT): 积分记录ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- points_earned (INT): 赚取的积分。
- points_redeemed (INT): 兑换的积分。
- transaction_date (DATETIME): 交易日期。
数据分析
-
sales_data
- data_id (PK, INT): 销售数据ID。
- sales_amount (DECIMAL): 销售额。
- order_count (INT): 订单数量。
- date (DATE): 数据对应的日期。
-
user_activity
- activity_id (PK, INT): 用户活动ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- page_viewed (VARCHAR): 浏览的页面。
- action_taken (VARCHAR): 采取的行动。
- activity_date (DATETIME): 活动日期。
安全中心
-
security_settings
- setting_id (PK, INT): 安全设置ID。
-
- user_id (INT, FK -> users.user_id): 关联的用户ID。
-
two_factor_auth_enabled (BOOLEAN): 是否启用双因素认证。
移动端适配
-
mobile_app_settings
- setting_id (PK, INT): 设置ID。
- feature_name (VARCHAR): 移动端特性名称。
- is_enabled (BOOLEAN): 是否启用。
API服务
-
api_keys
- key_id (PK, INT): API密钥ID。
- key (VARCHAR): API密钥。
- name (VARCHAR): 密钥名称。
-
api_logs
- log_id (PK, INT): API日志ID。
- key_id (INT, FK -> api_keys.key_id): 关联的API密钥ID。
- endpoint_accessed (VARCHAR): 访问的API端点。
- request_details (TEXT): 请求详情。
- response_details (TEXT): 响应详情。
- access_time (DATETIME): 访问时间。
社交媒体集成
-
social_accounts
- account_id (PK, INT): 社交媒体账号ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- provider (VARCHAR): 社交媒体提供者。
- provider_user_id (VARCHAR): 第三方用户ID。
个性化推荐
-
user_product_preferences
- preference_id (PK, INT): 用户商品偏好ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- product_id (INT, FK -> products.product_id): 关联的商品ID。
- preference_score (DECIMAL): 用户对商品的偏好分数。
-
recommendations
- recommendation_id (PK, INT): 推荐ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- recommended_at (DATETIME): 推荐时间。
多语言支持
-
languages
- language_id (PK, INT): 语言ID。
- code (VARCHAR, UNIQUE): 语言代码。
-
translations
- translation_id (PK, INT): 翻译ID。
- language_id (INT, FK -> languages.language_id): 关联的语言ID。
- key (VARCHAR): 翻译键。
- value (TEXT): 翻译值。
多货币支持
-
currencies
- currency_id (PK, INT): 货币ID。
- code (VARCHAR, UNIQUE): 货币代码。
-
currency_conversion_rates
- rate_id (PK, INT): 汇率ID。
- currency_id (INT, FK -> currencies.currency_id): 关联的货币ID。
- base_currency_id (INT, FK -> currencies.currency_id): 基础货币ID。
- conversion_rate (DECIMAL): 转换为基础货币的汇率。
用户行为跟踪
-
user_actions
- action_id (PK, INT): 用户行为ID。
- user_id (INT, FK -> users.user_id): 关联的用户ID。
- action_type (VARCHAR): 行为类型,如"页面浏览"、"商品添加到购物车"等。
- details (TEXT): 行为详情。
- occurred_at (DATETIME): 行为发生时间。
总结
- 完整性与规范化: 表结构设计遵循数据库规范化原则,减少数据冗余,保证数据的一致性。
- 业务相关性: 表结构紧密围绕业务需求设计,确保业务流程的顺畅和数据的完整性。
- 扩展性: 留有扩展空间,如商品分类支持层级结构,方便未来增加更多分类。