26 lines
1.9 KiB
Markdown
26 lines
1.9 KiB
Markdown
# FastBee 项目知识库
|
||
|
||
本知识库用于快速理解 FastBee 当前仓库的整体架构、运行链路、模块职责和数据库关系。内容基于本仓库代码、Maven 配置、`application*.yml` 和 `sql/yack-init.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-init.sql`。脚本中大部分业务表没有数据库外键,关系依靠字段命名、联合主键、索引和业务代码约定;Quartz 表保留了真实外键约束。
|
||
|
||
## 维护约定
|
||
|
||
- 业务逻辑、表关系和配置变化后,同步更新本目录对应文档。
|
||
- 表关系文档中用“强约束”表示 SQL 外键,用“业务约定”表示代码和字段约定形成的关系。
|
||
- 不把推断关系写成数据库强约束,除非 SQL 中确实存在 `FOREIGN KEY`。
|