# 测量数据模型 **本文档引用的文件** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [database_modify.xml](file://Install/Geomative Studio/database_modify.xml) - [Release\DB\数据库字段修改记录.txt](file://Release/DB/数据库字段修改记录.txt) - [TdManager.cpp](file://cpp/Managers/TdManager.cpp) - [TaskDataOper.cpp](file://cpp/Operator/TaskDataOper.cpp) - [TaskDataOper.h](file://h/TaskDataOper.h) - [CLoggingDataOper.cpp](file://cpp/logging/CLoggingDataOper.cpp) - [DialUploadLoopTask.h](file://h/DialUploadLoopTask.h) - [TdRecord.h](file://h/TdRecord.h) ## 目录 1. [引言](#引言) 2. [核心数据表结构](#核心数据表结构) 3. [几何信息记录设计](#几何信息记录设计) 4. [字段类型变更原因](#字段类型变更原因) 5. [定时任务管理机制](#定时任务管理机制) 6. [测井与图像数据管理](#测井与图像数据管理) 7. [电极坐标同步机制](#电极坐标同步机制) 8. [结论](#结论) ## 引言 本文件详细描述了Geomative Studio软件的测量数据模型,重点阐述了Td表及其关联表(如gr、ac、cm等)的结构设计。文档涵盖了2015年6月12日引入的测试任务几何信息记录设计、2017年9月23日和26日的定时任务管理功能,以及后续新增的测井和图像数据管理表。通过分析数据库修改记录和相关代码实现,本文档为理解系统的数据存储和管理机制提供了全面的参考。 **Section sources** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [Release/DB/数据库字段修改记录.txt](file://Release/DB/数据库字段修改记录.txt) ## 核心数据表结构 测量数据模型的核心是Td表,它存储了所有测试任务的基本信息。该表与多个关联表共同构成了完整的数据结构体系。gr表用于存储测量数据,cm表存储了代码和标签的映射关系,而tdchannel表则记录了通道信息。这些表通过ID等字段相互关联,形成了一个完整的数据网络。 ```mermaid erDiagram Td { int ID PK string TDname string DESN string Sname int Stype int Ttype int Eamount int TPamount string Edistance string rect string rect_loc datetime Cdate datetime Tdate } gr { int ID PK int TDID FK string Ecode datetime Mdate datetime Mtime int OMvalue int StatusCode } cm { int ID PK string Cname int Cvalue string Clabel int Lang } tdchannel { int ID PK int TDID FK int CHnumber int AR } Td ||--o{ gr : "包含" Td ||--o{ tdchannel : "包含" cm }|--|| Td : "Stype映射" cm }|--|| Td : "Ttype映射" ``` **Diagram sources ** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [TdManager.cpp](file://cpp/Managers/TdManager.cpp) **Section sources** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [TdManager.cpp](file://cpp/Managers/TdManager.cpp) ## 几何信息记录设计 2015年6月12日,系统对Td表进行了重要更新,增加了rect和rect_loc字段来记录测试任务的几何信息。这一设计变更旨在更精确地描述测量任务的空间布局。rect字段以文本类型存储矩形的大小,而rect_loc字段则记录矩形的位置信息。同时,系统删除了原有的X0\Y0\X1\Y1字段,采用了更灵活的文本格式来存储几何信息。 ```mermaid erDiagram Td { string rect string rect_loc } SCON { string Rect string RectLoc float PoleDistance float PoleStep } Td }|--|| SCON : "几何参数" ``` **Diagram sources ** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) **Section sources** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) ## 字段类型变更原因 在2015年6月12日的更新中,系统将Td表的Espace和Edistance字段从数字类型改为文本类型。这一变更的主要原因是增加了对多种单位和格式的支持。通过使用文本类型,系统可以存储包含单位标识的值(如"10m"、"5ft"等),提高了数据的灵活性和可读性。此外,文本类型还支持存储复杂的距离描述,如范围值或特殊标记。 **Section sources** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) ## 定时任务管理机制 2017年9月23日,系统新增了task_timer表用于管理定时任务。该表与PLCID字段(2017年9月26日添加)共同构成了定时任务管理的核心。task_timer表存储了定时任务的配置信息,包括执行时间、周期等。PLCID字段用于标识与任务关联的PLC设备,实现了任务与特定设备的绑定。这一机制使得系统能够自动化执行测量任务,并与外部设备进行协调。 ```mermaid erDiagram task_timer { int ID PK datetime TaskTime int Interval string PLCID int Status } Td { int ID PK bool IsAutoGenerate } task_timer }|--|| Td : "生成任务" ``` **Diagram sources ** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [DialUploadLoopTask.h](file://h/DialUploadLoopTask.h) **Section sources** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [TaskDataOper.cpp](file://cpp/Operator/TaskDataOper.cpp) ## 测井与图像数据管理 系统在2019年12月新增了TPictureInfo和TLoggingTaskInfo等表,用于管理测井和图像数据。TPictureInfo表存储了图片信息,包括岩性图片的路径和描述。TLoggingTaskInfo表则用于存储新建的测井任务信息,供用户选择和执行。这些新增表扩展了系统的功能,使其能够支持更复杂的测井和数据可视化需求。 ```mermaid erDiagram TPictureInfo { int ID PK int LanguageID string LithologyName string LithologyPicPath string LithologyType } TLoggingTaskInfo { int TaskID PK string TaskName string Location byte LogType float SamplingInterval float InitDepth float EndDepth } TLoggingTaskContent { int TaskID PK, FK int TestID PK float Depth string Data } TPictureInfo ||--o{ TLoggingTaskContent : "关联" TLoggingTaskInfo ||--o{ TLoggingTaskContent : "包含" ``` **Diagram sources ** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [CLoggingDataOper.cpp](file://cpp/logging/CLoggingDataOper.cpp) **Section sources** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [CLoggingDataOper.cpp](file://cpp/logging/CLoggingDataOper.cpp) ## 电极坐标同步机制 2019年7月14日,系统新增了TTaskInfoCoordinetes表,用于管理电极坐标信息。该表的主要作用是将本地的坐标信息下发给GD设备,或者保存云端的坐标数据。通过这一机制,系统实现了电极坐标的同步和共享,确保了测量数据的一致性和准确性。TTaskInfoCoordinetes表与任务ID关联,为每个测量任务提供了精确的电极位置信息。 **Section sources** - [数据库字段修改记录.txt](file://DB/数据库字段修改记录.txt) - [TaskDataOper.cpp](file://cpp/Operator/TaskDataOper.cpp) ## 结论 Geomative Studio的测量数据模型经过多次迭代和优化,形成了一个功能完整、结构合理的数据管理体系。从最初的Td表到后来的定时任务管理和测井数据管理,系统的数据模型不断扩展以满足新的需求。通过分析这些设计变更,我们可以看到系统在灵活性、可扩展性和实用性方面的持续改进。这些改进不仅提升了系统的功能,也为用户提供了更强大的数据管理能力。