Я работаю над проектом, в котором есть несколько процессов, и каждый процесс имеет разные элементы данных для обработки. Элементы данных (для разных процессов) имеют разные столбцы (но всегда одни и те же столбцы для одного и того же процесса).
Сначала я предположил, что было бы неплохо иметь таблицу для всех процессов, а затем, всякий раз, когда создается новый процесс, можно было бы создать и другую таблицу с данными элемента, но оказалось, что будет новый способ процесса часто создавать новые таблицы все время. Затем я изучал вложенные таблицы, но обнаружил, что в MySQL нет концепции вложенных таблиц. (Я слышал, что это можно сделать с помощью MariaDB. Кто-нибудь работал с ним?)
Чтобы было немного понятнее, вот текущая концепция (столбцы и значения здесь только приблизительны, чтобы сделать концепцию более понятной):
таблица_процессов:
ID | process_name | item_id | ...
---------------------------------
1 | some_process | 111 | ...
2 | other_process| 222 | ...
3 | third_process| 333 | ...
4 | third_process| 444 | ...
...
item_tables:
item_table_1:
ID | Column1 | Column2 | process_name | ...
--------------------------------------
111| val1 | val2 | some_process | ...
...
item_table_2:
ID | Column4 | Column5 | process_name | ...
--------------------------------------
333| val1 | val2 | third_process| ...
444| val3 | val4 | third_process| ...
...
Таким образом, для каждого нового процесса будет новая таблица item_table, и для каждого процесса должны быть разные имена столбцов, а в таблице элементов конкретный элемент будет связан со столбцом «item_id» в таблице процессов.
Я думаю, что самым простым решением (при создании новых таблиц все время не вариант) для этого будут вложенные таблицы, где в таблице процессов может быть еще один столбец, в котором будут храниться значения item_table, а затем те, которые могли бы иметь различные столбцы в зависимости от самого процесса.
Итак, большой вопрос: есть ли хоть что-то похожее на вложенные таблицы или что-то еще в MySQL, что помогло бы мне реализовать подобную структуру, не создавая все время новые таблицы, и если нет, то, возможно, есть есть советы или отзывы о MariaDB? Может быть, кто-то уже реализовал с ним вложенные таблицы (если это вообще возможно)
Одним из решений может быть наличие одной таблицы для 'item_table', а затем одного столбца для всех различных значений процессов, которые будут храниться, например, в формате JSON, но это сделает намного сложнее читать таблицу.
Например:
item_table:
ID | process_name | data
--------------------------------------
111| some_process | {values: {column1:val1,column2:val2,...}}