31 lines
1.7 KiB
Python
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='观测点数据表';
|
|
"""
|