# 设计文档目录 本目录包含字词学习平台的产品设计和数据库设计文档。 ## 文档列表 ### 1. requirements.md **产品需求文档** - 项目概述和目标 - 核心功能需求详细说明 - 后台管理功能需求 - 图片处理功能需求 - 用户权限管理需求 - 非功能需求和技术约束 ### 2. database-design.md **数据库设计文档** - 数据库选型分析(推荐 PostgreSQL) - 数据表详细设计 - 字段说明和索引优化 - 数据关系图 - 性能优化建议 ### 3. ER-diagram.sql **数据库建表 SQL 脚本** - 完整的 PostgreSQL 建表语句 - 包含所有索引和约束 - 触发器定义 - 可直接执行创建数据库结构 ## 设计要点 ### 核心设计决策 1. **统一表设计** - 汉字、词语、英语单词、字母使用统一的 `words` 表 - 通过 `type` 字段区分不同类型 - 优点:结构统一、查询便利、维护简单 2. **图片存储策略** - 原图和标准图分别存储 - 支持多图关联 - 主图标记机制 3. **关联关系设计** - 字词关联:支持多对多关系 - 句子关联:支持多对多关系 - 使用中间表管理关联关系 4. **用户权限设计** - 基于角色的访问控制(RBAC) - 超级管理员和一般管理员两级权限 - 操作日志记录 ## 数据库选型 **推荐:PostgreSQL** **理由:** - 关系型数据优势,适合强关联关系 - 原生 JSON/JSONB 支持,灵活存储 SVG 数据 - 全文搜索功能,适合字词搜索 - 数组类型支持,适合存储多个拼音 - 企业级性能,开源免费 ## 快速开始 ### 1. 创建数据库 ```bash # 使用 PostgreSQL createdb doodle_platform # 执行建表脚本 psql -d doodle_platform -f ER-diagram.sql ``` ### 2. 数据表结构 - `words` - 字词主表 - `word_images` - 图片表 - `word_relations` - 字词关联表 - `sentences` - 句子表 - `word_sentences` - 字词-句子关联表 - `users` - 用户表 - `operation_logs` - 操作日志表 ## 后续工作 1. **API 接口设计** - RESTful API 规范 - 接口文档(Swagger/OpenAPI) 2. **前端页面设计** - 字词列表/卡片页面 - 字词编辑页面 - 图片上传页面 - 用户管理页面 3. **图片处理服务** - 集成 node-tools 的图片处理功能 - 批量处理接口 - 异步处理队列 4. **权限系统实现** - JWT 认证 - 角色权限中间件 - 操作日志记录