关于数据库结构的设计(200分)

  • 主题发起人 主题发起人 hwsh
  • 开始时间 开始时间
H

hwsh

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一个检测程序,下位机每隔10秒左右,发256个数据(一数据一个字节),要存发送时
间,该如何设计数据库结构:第一种:256个数据分成两个字段,一个字段128个字符,两个
字段表示256个数据,这种方式取某一个值比较麻烦,尤其是统计某个点的数据时比较麻烦。
还有一种就是只设一个数据字段(还有一个时间字段),数据字段只有一个 字节,一组数
据存256个记录,也就有256个时间,冗余太大,太占空间。大家给个建议。
 
如下结构即可:
CrDate: DateTime,
D001: Byte,
D002: Byte,
D003: Byte,
...
D256: Byte

一个时间+256个数值字段构成一个数据行——节省空间且易于按字段进行统计分析。
 
非常感谢,不过这样的话,我要保存的时候就太费事了,要写256个字段名
 
我用的是access数据库,字段数限制在255个。
 
那就让最后两个数值挤在一个字段里好了,还可以考虑用两行数据存放的方案:
CrDate, LineIdx(0或1), Data1, Data2, ... Data128
存放时,将 1-128 号数据连同 CrDate 写入一行内(LineIdx为0),存放129-256号数据
时,也是一样,只不过将LineIdx设为1即可。这样一来,在统计查询时只要利用LineIdx这
个标志就不会混淆1和129号数据(其它的也一样)。
唉,说到这里——还可以考虑将数值分拆存放在两张结构相同的表里面嘛(时间+128个字
段),非常省事。如果可以考虑放弃Access,使用Firebird等数据库,那就最好。

费事?写个for循环,让程序自己去整,你的主要任务是节约存储所占用的空间以及高效
的分析,有时候我们必须在熊掌和鱼之间做出选择。
 
学习,creation-zy说的很有道理,在接数据时,判断是否结束,或者是否到128或256,利用循环程序自己写数据库就可以 了。
 
非常感谢,按creation-zy说的办
 
后退
顶部