我正在设计一个数据库,用于存储各种类型的熔炉的时序操作数据(能耗,温度等)。这是我第一次尝试DB设计,所以我希望它不会成为垃圾!
数据库的一些用法示例如下(例如,我们存储5个炉子的数据):
用户指定一个炉子(例如5号炉)和一个时间段,并检索许多参数的时间序列数据
用户为电炉2指定数据类别(例如“电气”),并检索所有时间序列数据以获取电参数(能耗,电压等)
等等。
如果不清楚,这里是ERD中某些表/属性的描述:
值:表中的实际数据点(值)和一个复合主键,以赋予数据点唯一性,其中包含time_value,series_id和parameter_id。请注意,我用来设计ERD的软件不允许使用复合主键(仅将time_value加粗),但希望可以从series_id_alsoPK和parameter_id_alsoPK的标题中清楚看出,它们包含在PK中以形成复合键
参数:这代表每个时间序列数据集的“变量名称”,例如功率,温度,产气率
类别:多个变量名称将归为一个类别,例如,电源,电流将归入“电气”类别,而天然气产量将归入“过程”类别
系列:对于每个操作和参数,每个时间系列数据集都将具有唯一的系列ID。例如,series_ID 1是2019年3月1日至3月3日炉3的天然气生产率。Series_ID 2是同一时期的炉1的天然气生产率。等
操作和fce_type:操作可能是“巴西熔炉5”,类型可能是“感应炉”
我想知道我是否在正确的轨道上。 “值”表的复合键是解决此问题的最佳方法吗?这是处理大型时间序列数据集的最有效方法吗?我经历了NF1-4,从这个角度来看我认为还可以。