from sqlalchemy import Column, Integer, String, DECIMAL class SectionData: """断面数据表结构定义 - 动态分表""" @staticmethod def get_table_name(account_id: int) -> str: return f"section_data_{account_id}" @staticmethod def get_create_sql(account_id: int) -> str: table_name = SectionData.get_table_name(account_id) return f""" CREATE TABLE IF NOT EXISTS `{table_name}` ( `id` int NOT NULL AUTO_INCREMENT, `project` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '项目', `mileage` varchar(100) NOT NULL COMMENT '断面里程', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '断面名称', `number` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '断面编码', `status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '断面状态', `excavation_method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '开挖方法', `rock_mass_classification` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '围岩级别', `width` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '断面宽度(m)', `U0` decimal(10,4) DEFAULT NULL COMMENT 'U0(mm)', `remarks` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT 'U0备注', `department_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_section_id` (`section_id`), KEY `idx_department_id` (`department_id`), KEY `idx_number` (`number`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='断面数据表'; """