我想读取不同的生物传感器以及平板传感器数据,并将它们存储在SQL数据库中。生物传感器的数据有皮肤电导、心率、心率变异性等。这些只是数字(有一个单位)。对于平板传感器的数据,我有触摸输入,加速度,前凸轮,笔输入等.基本上,这些也只是数字,除了笔和前凸轮。
关于SQL数据库方案,我考虑创建一个包含时间戳、用户ID、tablet ID、传感器ID、单元和值的表。关键是(时间戳、用户ID、tablet ID、传感器ID),因为可以同时测量不同的传感器。我用平板电脑(也是生物传感器数据)记录所有传感器值,所以总是有一个tablet ID,这也意味着数据库保存在平板电脑上。我用的是机器人。
我不知道这是否有意义。也许每个传感器都有一个单独的表会更好。你会如何制订这样的计划,或是否有另一项好计划的建议?
第二,我应该如何存储手写笔输入和前摄像头(视频)记录?我想把视频记录不是存储在数据库中,而是存储在外部,然后以某种方式从数据库链接到这个外部文件(例如,通过文件名)。
会有很多数据要存储。我将收集传感器数据超过60分钟,有几个值,每秒钟写(例如,对于生物传感器数据每1/10秒,有一个新的值)。因此,数据库太大或太慢可能是一个问题。顺便说一下,我只想写到数据库。在第二个(离线)步骤中读取数据库。
发布于 2017-06-02 13:49:56
I会倾向于为每个传感器建立一个单独的表。理由如下:
I还会创建一个表来捕获与设备交互的一段时间。让我们称之为“会话”。
这将为其他表提供一个键,并允许您定义与该会话关联的视频和手写笔数据文件。
所以你会有这样的东西:
session (
session_id,
user_id,
tablet_id,
video_file,
stylus_data_file,
session_start_time,
session_end_time,
... any other session-level data ...
)
然后每个传感器都有一个表,如下所示:
heart_rate_readings (
session_id,
timestamp,
value
)
注意:我对手写笔的数据不太了解,无法给出一个有根据的意见。上述假设假设它将存储在一个单独的文件中。但是,如果它只是一个正在接收的坐标流,您也可以考虑将它存储在数据库中的一个单独的表中。
发布于 2017-06-02 20:54:31
一些想法:
我假设每个传感器的数据总是使用相同的单元。也就是说,如果传感器#7在今天给出一个欧姆值,它明天就不会给出一个毫米值。更有道理的是,我想可能有一些设置可以让你在英寸和厘米之间切换,等等。但是如果单位总是相同的,那么就不要将单位存储在同一个表中。有一个单独的“传感器”表,给出该传感器的单元,可能还有关于传感器的其他信息,比如名称。
每个传感器是否有一个表,还是每个传感器都有一个单独的表:一个表的最大优点是,如果您添加了一个新的传感器,您不需要更改模式,它只是数据:向传感器表添加一个记录,您就完成了。如果有很多数据,这个表就会变大。但是每条记录都很小:我认为传感器ID和tablet ID可以是int的,用户ID可能是int或guid。
我从没试过把视频存储在数据库里。我存储了图像,与其他数据相比,它们是巨大的。一个视频通常至少是兆字节。我的直觉是将它们存储为单独的文件,只需存储一个文件名。我将很高兴地向任何尝试将视频放到DB中的人屈服,并且可以说结果如何。
https://stackoverflow.com/questions/44329816
复制相似问题