Files
Web_BLS_SQL_Temp/.trae/documents/创建数据库及房间状态表初始化脚本计划.md
XuJiacheng a4763b5e30 feat: 初始化临时项目管理项目结构及核心功能
- 新增项目根目录及配置文件,包括 .gitignore、.env.example 和 package.json
- 实现数据库连接池、配置加载、日志记录和 HTTP 客户端工具
- 添加数据服务层,支持酒店、房间、房型和回路数据的批量事务处理
- 创建主脚本,实现分阶段数据获取、处理和存储流程
- 提供数据库初始化脚本和测试用例
- 添加项目文档,包括 README.md 和项目需求说明
2026-02-02 09:10:53 +08:00

1.6 KiB
Raw Blame History

任务概览

根据 .env 的配置和 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 文件。