34 lines
2.1 KiB
Python
34 lines
2.1 KiB
Python
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='断面数据表';
|
|
"""
|