- 新增项目根目录及配置文件,包括 .gitignore、.env.example 和 package.json - 实现数据库连接池、配置加载、日志记录和 HTTP 客户端工具 - 添加数据服务层,支持酒店、房间、房型和回路数据的批量事务处理 - 创建主脚本,实现分阶段数据获取、处理和存储流程 - 提供数据库初始化脚本和测试用例 - 添加项目文档,包括 README.md 和项目需求说明
1.6 KiB
1.6 KiB
任务概览
根据 .env 的配置和 project.md 中的需求,创建 PostgreSQL 数据库初始化脚本。该脚本将包含数据库创建、模式(Schema)定义、以及 room_status_moment 表的详细设计。
技术要点分析
-
高性能读写:针对高频查询和写入,我们将为关键字段(如
hotel_id,room_id,device_id,guid等)建立索引。 -
并发处理:使用复合主键
(hotel_id, room_id, device_id, guid)来确保数据的唯一性,并利用 PostgreSQL 的ON CONFLICT特性处理并发写入冲突。 -
后期规划(分片存储):
-
虽然目前数据量预计在十万级别,但为了后期扩展,我们将采用 PostgreSQL 原生声明式分区(Declarative Partitioning)。
-
按照
hotel_id进行LIST分区,方便后期根据酒店 ID 将数据分布到不同的物理存储或分表中。
-
-
字段类型优化:
-
guid: 使用uuid类型,存储空间更小且索引效率高。 -
ts_ms: 使用timestamptz(timestamp with time zone) 确保时区正确。
-
实施步骤
-
创建初始化 SQL 文件:在根目录下创建
init_db.sql。 -
编写 SQL 内容:
-
创建模式
room_status。 -
定义
room_status_moment主表,并配置分区规则。 -
创建索引以支持快速检索。
-
添加必要的注释以提高可维护性。
-
-
验证脚本:检查 SQL 语法是否符合 PostgreSQL 规范。
请确认以上计划,完成后我将直接生成 SQL 文件。