【发布时间】:2020-08-29 20:35:20
【问题描述】:
我是数据库设计的新手,但对计算机和术语不熟悉。我的数据库设计需要一些帮助。我正在从全球导航卫星系统 (GNSS) 接收器收集数据,每个数据包的大小取决于它看到的星座(GPS、GALILEO、GLONASS 等)。它们之间有一些共同的字段,但我目前设置它的方式是所有可能的字段都是列,并且与新数据包无关的任何字段都只是 NULL。这是非常低效的,我只是不知道如何设计更好的方法。想法?重点是现在这样,每次查询时,要么指定与特定数据包类型相关的所有字段,要么得到一堆无用的数据。
我正在考虑一个选项,其中我将所有公共字段放在一个表中,另一个表用于每个数据包类型的唯一字段。然后有一列告诉它是什么类型的数据包,所以当我执行 SELECT 查询时,我可以执行 JOIN 并且只获取与所述数据包相关的数据。
【问题讨论】:
-
有了字段,你是指遥测数据吗?也就是说,措施?一颗卫星可以有数千种不同的遥测测量值,这意味着数千个 FLOAT 类型的列,有时幸运的是 INTEGER 或 BOOLEAN。这就是我们所说的吗?
-
是也不是,但我们并不担心年历数据,因为这对我们来说并不重要。我们正在更多地关注 NovAtel 返回的测量结果,因此无需存储所有 Keplarian 轨道参数。我们打算让接收器发回一些命令,这些数据将被存储。我们没有存储 1000 列,更像是 ~100。随着时间的推移,将有 1000 个条目,但不会有列数。
标签: mysql sql database dynamic mariadb