выбирай - или все сущности имеют одинаковое количество столбцов (закладываем максимальное возможное, но сразу, и да, часть полей будут пустыми у некторых сущностей)
или запихивай все json и храни в строке + пара столбцов для атрибутов для поиска
или есть еще вариант - каждый et - отдельная строка в таблице + группирующий ключ сущности
еще придумал - все хранится в таблице из 10ти столбцов, последний столбец - пустой или id записи в этой же таблице со следующим десятком полей, первый селект покажет первые 10 а потом если пользователю надо - подгрузим еще 10 и т.д.
еще вариант - создаем много таблиц - из 1го столбца, из 2х, из 3х...и т.д. по мере надобности, сколько полей пришло - в такую и записываем, селекты по всем таблицам - недорого