fastbee/docs/knowledge-base/README.md
2026-05-25 09:10:32 +08:00

26 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# FastBee 项目知识库
本知识库用于快速理解 FastBee 当前仓库的整体架构、运行链路、模块职责和数据库关系。内容基于本仓库代码、Maven 配置、`application*.yml` 和 `sql/yack-20260316.sql` 梳理。
## 阅读路径
1. [整体架构](./01-architecture.md):项目分层、模块边界、依赖入口、前后端组成。
2. [核心运行链路](./02-runtime-flows.md):启动、设备接入、上报、下发、规则引擎、视频和通知链路。
3. [数据库与表关系](./03-data-model.md):表分组、核心实体、业务关联、真实外键和约定关联。
4. [数据库关系图](./04-er-diagrams.md):按业务域拆分的 Mermaid ER 图。
5. [数据桥接对接文档](./05-data-bridge-integration.md):设备/物模型查询、设备上报数据推送和第三方主动查询。
## 当前结论
- 后端是 Java 8 + Spring Boot 2.5.14 的 Maven 多模块工程,主入口是 `fastbee-admin`。
- 前端包含三个独立应用:`yack-web` 管理后台、`yack-view` 低代码可视化、`yack-app` UniApp 移动端。
- IoT 接入由 `fastbee-server` 下的 Netty 协议服务承载,协议编解码在 `fastbee-protocol`,业务处理集中在 `fastbee-iot-data` 和 `fastbee-service/fastbee-iot-service`。
- 设备消息队列当前主要是 JVM 内本地 `LinkedBlockingQueue` 队列族,`fastbee-mq` 模块名称虽为 MQ,但核心代码不是外部 RocketMQ Consumer 模式。
- 主库初始化脚本为 `sql/yack-20260316.sql`。脚本中大部分业务表没有数据库外键,关系依靠字段命名、联合主键、索引和业务代码约定;Quartz 表保留了真实外键约束。
## 维护约定
- 业务逻辑、表关系和配置变化后,同步更新本目录对应文档。
- 表关系文档中用“强约束”表示 SQL 外键,用“业务约定”表示代码和字段约定形成的关系。
- 不把推断关系写成数据库强约束,除非 SQL 中确实存在 `FOREIGN KEY`。