feat:初始化项目
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
# 设计文档目录
|
||||
|
||||
本目录包含字词学习平台的产品设计和数据库设计文档。
|
||||
|
||||
## 文档列表
|
||||
|
||||
### 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 认证
|
||||
- 角色权限中间件
|
||||
- 操作日志记录
|
||||
Reference in New Issue
Block a user