具有多个大型数组的单个表与多个表

时间:2019-05-02 05:33:43

标签: mysql arrays json dictionary

我有200个实体,每个实体都包含一些有关自身的数据。 200个实体中的每个实体还具有3个字典数组,这些字典将每天附加数据。我的问题是我可以有一个像这样的表:

Entities_Table
    entity1_id(pk) | entity1_name | entity1_data1 | entity1_data2 | entity1_data3 | entity1_array1 | entity1_array2 | entity1_array3 | entity2...

array1-3将从小开始,但随着每天添加的数据而变大。我还需要能够对这些数组进行查询,例如获得按数组中某个值排序的第一个X或最后一个X。每个数组值将是具有3个值(时间戳和2个数据点)的字典。因此,在这种情况下,它们将是JSON对象。

此外,每年可能会创建1-3个新实体,这意味着要么为这些实体创建新表,要么在现有表中添加列,使其更大。如果我要创建单独的表,那么我仍然会有一个包含静态数据的主表(新行每年创建新实体的次数将仅为创建新行的1-3次):

Entities_Table
    entity1_id(pk) | entity1_name | entity1_data1 | entity1_data2 | entity1_data3

然后,我将为每个实体数组(每个3个数组共享相同的时间戳,因此可以将其组合在一起)使用一个单独的表,该表将每天创建新行:

Entity1_Array_Data
    timestamp | data1 | data2 | data3 | data4 | ...

Entity2_Array_Data
    timestamp | data1 | data2 | data3 | data4 | ...

...

这将导致201个表代表每个实体数据。

我对JSON文档与MySQL的工作方式不太熟悉,但是如果效率更高,那么也许可以使用一个表来表示此数据更好。我还可以将列拆分为多个表,例如50个实体的表,这样,如果表太大,我可以为接下来的50个实体创建一个新表,依此类推。

此外,查询只会针对每个实体进行,并且只能从一行获取所有数据

0 个答案:

没有答案