feat: 初始化临时项目管理项目结构及核心功能

- 新增项目根目录及配置文件,包括 .gitignore、.env.example 和 package.json
- 实现数据库连接池、配置加载、日志记录和 HTTP 客户端工具
- 添加数据服务层,支持酒店、房间、房型和回路数据的批量事务处理
- 创建主脚本,实现分阶段数据获取、处理和存储流程
- 提供数据库初始化脚本和测试用例
- 添加项目文档,包括 README.md 和项目需求说明
This commit is contained in:
2026-02-02 09:10:53 +08:00
commit a4763b5e30
23 changed files with 5931 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
## 任务概览
根据 [.env](file:///e:/Project_Class/BLS/Web_BLS_SQL/.env) 的配置和 [project.md](file:///e:/Project_Class/BLS/Web_BLS_SQL/project.md) 中的需求,创建 PostgreSQL 数据库初始化脚本。该脚本将包含数据库创建、模式Schema定义、以及 `room_status_moment` 表的详细设计。
## 技术要点分析
1. **高性能读写**:针对高频查询和写入,我们将为关键字段(如 `hotel_id`, `room_id`, `device_id`, `guid` 等)建立索引。
2. **并发处理**:使用复合主键 `(hotel_id, room_id, device_id, guid)` 来确保数据的唯一性,并利用 PostgreSQL 的 `ON CONFLICT` 特性处理并发写入冲突。
3. **后期规划(分片存储)**
* 虽然目前数据量预计在十万级别,但为了后期扩展,我们将采用 **PostgreSQL 原生声明式分区Declarative Partitioning**
* 按照 `hotel_id` 进行 `LIST` 分区,方便后期根据酒店 ID 将数据分布到不同的物理存储或分表中。
4. **字段类型优化**
* `guid`: 使用 `uuid` 类型,存储空间更小且索引效率高。
* `ts_ms`: 使用 `timestamptz` (timestamp with time zone) 确保时区正确。
## 实施步骤
1. **创建初始化 SQL 文件**:在根目录下创建 `init_db.sql`
2. **编写 SQL 内容**
* 创建模式 `room_status`
* 定义 `room_status_moment` 主表,并配置分区规则。
* 创建索引以支持快速检索。
* 添加必要的注释以提高可维护性。
3. **验证脚本**:检查 SQL 语法是否符合 PostgreSQL 规范。
请确认以上计划,完成后我将直接生成 SQL 文件。