## 前后端数据库状态说明

**更新日期**: 2025-09-17

### 概要
- 数据库已落地：已在远程 MySQL `mysql.tonaspace.com` 的 `partsinquiry` 库完成初始化（表结构与触发器已创建）。
- 已生成根目录文档：`/doc/database_documentation.md` 已同步线上结构（字段、索引、外键、触发器）。
- 后端代码仍未配置数据源依赖与连接，前端无本地结构化存储方案。

### 已建库与连接信息（用于部署/联调）
- Address: `mysql.tonaspace.com`
- Database: `partsinquiry`
- User: `root`
- 说明：所有结构变更均通过 MysqlMCP 执行并已落地到线上库。

### 角色与模拟数据策略（统一为店长）
- 当前不进行角色划分，系统仅保留“店长”角色。
- 已将所有用户记录统一为：`role='owner'`、`is_owner=1`。
- 前端/后端权限逻辑暂未启用，后续若引入权限体系，再行扩展角色与边界。

### 小程序默认用户（可开关，默认关闭）
- 目的：开发/演示阶段，便于免登录联调。
- 机制：前端在请求头附加 `X-User-Id`（值为张老板 id=2），仅当开关开启时。
- 开关：
  - 环境变量：`VITE_APP_ENABLE_DEFAULT_USER=true` 与 `VITE_APP_DEFAULT_USER_ID=2`
  - 或本地存储：`ENABLE_DEFAULT_USER=true` 与 `DEFAULT_USER_ID=2`
- 关闭：不设置/置为 `false` 即可停用（生产环境默认关闭）。
- 完全移除：删除 `frontend/common/config.js` 中默认用户配置与 `frontend/common/http.js` 中注入逻辑。

### 后端（Spring Boot）状态
- 依赖：`pom.xml` 已包含 `spring-boot-starter-web`、`spring-boot-starter-data-jpa`、`mysql-connector-j`。
- 配置：`application.properties` 使用环境变量注入数据源，已补充 Hikari/JPA；新增附件占位图配置：
  - `attachments.placeholder.image-path`（env: `ATTACHMENTS_PLACEHOLDER_IMAGE`）
  - `attachments.placeholder.url-path`（env: `ATTACHMENTS_PLACEHOLDER_URL`，默认 `/api/attachments/placeholder`）
- 接口：新增附件相关接口（占位方案）：
  - POST `/api/attachments`：忽略内容，返回 `{ url: "/api/attachments/placeholder" }`
  - GET `/api/attachments/placeholder`：返回本地占位图二进制
- 迁移：仍建议引入 Flyway/Liquibase；结构变更继续通过 MysqlMCP 并同步 `/doc/database_documentation.md`。

### 前端（uni-app）数据库状态
- 数据持久化：未见 IndexedDB/WebSQL/SQLite/云数据库使用；页面数据为内置静态数据。
- 本地存储：未见 `uni.setStorage`/`uni.getStorage` 的集中封装或结构化键空间设计。
- 结论：前端当前不涉及本地数据库或结构化存储方案。

### 风险与影响
- 后端未配置数据源与接口，应用无法读写远端库（虽已建表）。
- 无接口契约，前后端仍无法联调涉及数据库的功能。

### 建议的后续行动（不自动执行）
- 在后端引入依赖：`spring-boot-starter-web`、`spring-boot-starter-data-jpa`、`mysql-connector-j`。
- 配置数据源：使用环境变量注入 `SPRING_DATASOURCE_URL`、`SPRING_DATASOURCE_USERNAME`、`SPRING_DATASOURCE_PASSWORD` 等，指向上述远程库。
- 引入迁移工具（Flyway/Liquibase）管理 DDL；后续所有变更继续通过 MysqlMCP 执行，并同步 `/doc/database_documentation.md`。
- 增加健康检查与基础 CRUD 接口；在 `/doc/openapi.yaml` 按规范登记并标注实现状态（❌/✅）。

### 前端默认连接策略
- 默认后端地址：`http://192.168.31.193:8080`（可被环境变量/Storage 覆盖）
- 多地址重试：按顺序尝试（去重处理）：`[ENV, Storage, 192.168.31.193:8080, 127.0.0.1:8080, localhost:8080]`
- 默认用户：开启（可被环境变量/Storage 关闭），请求自动附带 `X-User-Id`（默认 `2`）。
- 如需关闭：在 Storage 或构建环境中设置 `ENABLE_DEFAULT_USER=false`。


### 占位图策略（当前阶段）
- 说明：所有图片上传与展示均统一使用占位图，实际文件存储暂不开发。
- 本地占位图：`C:\Users\21826\Desktop\Wj\PartsInquiry\backend\picture\屏幕截图 2025-08-14 134657.png`
- 配置方式：
  - PowerShell（当前用户持久化）
    ```powershell
    setx ATTACHMENTS_PLACEHOLDER_IMAGE "C:\\Users\\21826\\Desktop\\Wj\\PartsInquiry\\backend\\picture\\屏幕截图 2025-08-14 134657.png"
    setx ATTACHMENTS_PLACEHOLDER_URL "/api/attachments/placeholder"
    ```
  - 应用重启后生效；也可在运行环境变量中注入。
- 前端影响：
  - `components/ImageUploader.vue` 上传始终得到 `{ url: '/api/attachments/placeholder' }`
  - 商品列表/详情展示该占位图地址



