表结构设计

我想设计一个测试数据采集的表
列有时间、序列号、产品编号、工单编号、测试1、测试2、测试3。。。。。
我现在把产品、工单作为 TAG。现在有个问题,每一个产品都有一个序列号,现在需求序列号也能作为搜索条件,我要把序列号作为 TAG 吗,这样感觉会每一个序列号都在超级表下面加一个子表,会不会有性能问题。

序列号、产品编号、工单编号 是想将这3个字段都作为 tag 吗?
那么子表名 是怎么规划的呢?

拼接起来 MD5 一下,我看文档中要作为搜索字段最好作为 TAG

对。建模的基本原则:

1、不变的字段,设置成 tag 字段;
2、采集频率接近的信息字段,放到同一张超级表中(如果有缓存汇聚的,那可以忽略,根据业务需要不同采集频率的字段也可以放到一张超级表中);

3、子表按照一个设备来创建。后续业务查询可以根据需要创建虚拟表支持。

我想问下我的序列号很多,按照我的理解会创建很多子表,每个子表只有一两条数据,这样设计是否合理,如果不把序列号作为 TAG。后面数据量起来查询效率会不会很低

那得权衡考虑。

“每个子表只有一两条数据”: 是多久一两条数据?

例如一个产品一个序列号,每测试一次就一条记录,可能这个产品测试多次,
一张工单会生产很多个产品(每一个产品有自己的序列号用于后期品质追溯)
如果是工单号做 TAG 的话,就是一张工单一张表,子表数量就是工单 * N
如果序列号也做 TAG 的话,那表数量就是 工单 工单产量 * N
这样我应该如何考虑平衡