我有一些数据,其中列是动态的,列数据的数量可以随时增加/减少。所以我打算将它们存储在行而不是列格式中。
我放置了列的主表,它指示列使用的数据类型。我正在绘制下面的主表供您参考
CID Name Type
1 Speed Double
2 Input1 Bool
3 Message String
.......
.......
现在我想到了两种存储此动态列数据的方法第一种方法是
CID Data_bool Data_String Data_Double
1 NULL NULL 12
2 True NULL NULL
3 NULL test NULL
1 NULL NULL 5
1 NULL NULL 15
第二种方法是有一个通用的 varchar 列并将每个值作为字符串存储在那里,所以它看起来像
CID Datas
1 12
2 True
3 test
1 5
1 15
如果您从数据库规范化的角度来看,那么第二种方法似乎很好。但我认为它会在数据检索中产生问题。因为我想过滤像“速度> 10”这样的数据。因此,如果我采用第二种方式(我将所有值存储为字符串),我认为表达式将需要更多时间来评估如果我采用第一种方式进行表达式,那么首先我需要确定我需要评估表达式的列. 前任。对于表达式 Speed > 10,首先我必须检查 Speed 属于哪种数据类型(字符串、布尔等),然后再次执行“data_double > 10”的表达式
两者都有自己的缺点。有人可以指出哪种方式将来会让我不那么头痛。请记住,此表将在后期增长数百万条记录。
我很欣赏你在这里的观点和时间。谢谢你。