如题,我手头的代码模块需要接受一个硬件设备的实时数据,储存到时序数据库中(TDEngine)。今天早上领导让我照着他定义的数据库文档建表,我越写越感觉不对呢,怎么有几百个字段还都是 Int 类型?我意识到领导是把串行数据的每个 Byte 都单独定义一个字段了,我感觉不妥,想请教一下各位串行数据一般存储到数据库中都是怎么处理的。
感觉这么定义数据库字段真的有点糟,领导对一些具有连续意义的 Bytes 直接定义了几十个连续的字段,命名从 xxx_1 命名到 xxx_50 ,我看了真想直接上去邦邦两拳 这么存数据以后拿出来还怎么计算?把 50 个字段再加一遍吗?
1
SteinsGate 87 天前 via Android 1
邦邦给他两拳
|
2
dyexlzc 87 天前
这水平都能当领导……?串行数据本身就是二进制,用 base64 转一下存字符串就行。
|
3
ho121 87 天前 via Android
啥样的串行数据?如果是定长的,而且是结构化的,分 int 存也许可以提高一些筛选性能。
|
4
Goooooos 87 天前 via Android
这数据需不需要搜索??
|
5
BugCry 87 天前 via Android
谁写代码用谁的,并不是一定得有个谁对谁错
|
6
Jackm 86 天前
可能以后还会有新硬件需要建新表吧,国产安卓手机的系统不就是这样吗?
|
7
chinaguaiu OP @dyexlzc 我觉得也是,数据库只需要给这个串行数据一个字段进行保存就可以了,需要看数据的时候在上层代码中写解析方法就可以了。
|
8
chinaguaiu OP @ho121 确实是定长和结构化的数据,但是没有字段筛选的需求,所以没有必要这样干。尤其是,我这里一组串行数据的 bytes 数量非常大,超过 100 个 bytes ,数据库储存的字段太多了,后期这些 bytes 的含义有变动了也不好改
|