Files
Tunnel/app/models/checkpoint.py
2025-12-12 10:57:31 +08:00

31 lines
1.7 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime
class Checkpoint:
"""观测点数据表结构定义 - 动态分表"""
@staticmethod
def get_table_name(account_id: int) -> str:
return f"checkpoint_{account_id}"
@staticmethod
def get_create_sql(account_id: int) -> str:
table_name = Checkpoint.get_table_name(account_id)
return f"""
CREATE TABLE IF NOT EXISTS `{table_name}` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '观察点名称',
`burial_date` datetime DEFAULT NULL COMMENT '埋设日期',
`objstate` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '测点状态',
`monitoring_type` varchar(100) DEFAULT NULL COMMENT '监测类型',
`period_number` int DEFAULT NULL COMMENT '量测期次',
`first_time` datetime DEFAULT NULL COMMENT '首测时间',
`manufacturer` varchar(100) DEFAULT NULL COMMENT '负责厂商',
`point_code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '测点编码',
`point_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '观察点id',
`section_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '所属断面id',
PRIMARY KEY (`id`),
KEY `idx_point_id` (`point_id`),
KEY `idx_section_id` (`section_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='观测点数据表';
"""