You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关联用户与多传感器测量的多CSV入库表结构设计

数据库表结构设计方案

1. 基础核心表

用户表 (users)

存储用户主体信息,作为所有测量数据的归属载体:

字段名类型说明
user_idINT(主键)用户唯一标识
usernameVARCHAR(50)用户名
......其他用户属性字段(如注册邮箱)

传感器表 (sensors)

预先定义3个传感器的基础信息,统一管理测量类型与传感器对应关系:

字段名类型说明
sensor_idINT(主键)传感器唯一标识
sensor_typeVARCHAR(50)传感器对应的测量类型
sensor_nameVARCHAR(50)传感器名称(如"温度传感器A")

2. 测量任务关联表 (measurement_tasks)

记录单次测量的元数据,把同一次测量的3个传感器数据绑定为一个整体:

字段名类型说明
task_idINT(主键)测量任务唯一标识
user_idINT(外键)关联用户表user_id
start_timeDATETIME测量开始时间
end_timeDATETIME测量结束时间(固定10分钟周期)
create_timeDATETIME任务数据入库时间

3. 测量数据表 (measurement_data)

存储所有传感器的原始测量数据,无需为每次测量新建表:

字段名类型说明
data_idINT(主键)单条测量数据唯一标识
task_idINT(外键)关联测量任务表task_id
sensor_idINT(外键)关联传感器表sensor_id
timestampBIGINTCSV中的测量时间戳
column_bDECIMAL(10,4)CSV中Column B的测量值
column_cDECIMAL(10,4)CSV中Column C的测量值
......传感器其他测量字段(按需扩展)

设计逻辑说明

  1. 数据关联逻辑:每次测量生成3个CSV后,先在measurement_tasks新增一条记录获取task_id;再分别读取每个CSV的数据,给每条记录打上对应的task_id和sensor_id,批量插入measurement_data表。
  2. 查询逻辑:
    • 要获取某用户某次测量的全量数据:通过user_id找到对应task_id,再用task_id筛选measurement_data即可拿到该次3个传感器的所有数据。
    • 要查看某传感器的历史数据:用sensor_id+user_id组合筛选即可。
  3. 可选优化:如果不同传感器的测量字段差异极大,可以拆分为多个传感器专属数据表(如sensor_a_data、sensor_b_data),但每个表仍保留task_id和user_id用于关联,避免字段冗余。同时可给measurement_data建立(task_id, sensor_id)联合索引,提升查询效率。

内容的提问来源于stack exchange,提问作者J.Coe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:18:32