feat: 初始化临时项目管理项目结构及核心功能
- 新增项目根目录及配置文件,包括 .gitignore、.env.example 和 package.json - 实现数据库连接池、配置加载、日志记录和 HTTP 客户端工具 - 添加数据服务层,支持酒店、房间、房型和回路数据的批量事务处理 - 创建主脚本,实现分阶段数据获取、处理和存储流程 - 提供数据库初始化脚本和测试用例 - 添加项目文档,包括 README.md 和项目需求说明
This commit is contained in:
34
.trae/documents/创建数据库及房间状态表初始化脚本计划.md
Normal file
34
.trae/documents/创建数据库及房间状态表初始化脚本计划.md
Normal 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 文件。
|
||||
Reference in New Issue
Block a user