У них, вероятно, есть отдельные таблицы. Хотя все они являются классификацией и являются «категориями» для пользователя, как вы говорите, данные сильно отличаются, и я подозреваю, что они хранятся отдельно из-за этого. Не было бы никакого реального преимущества (о чем я могу думать), чтобы хранить их все в одном большом столе, когда большую часть времени люди будут запрашивать отдельный стол. Недостатки, как вы говорите, состоят в том, что все столбцы для всех типов должны быть в одной таблице, что приведет к созданию широкой таблицы с большим количеством нулевых данных.
Сами категории довольно исправлены, поэтому добавление новых, вероятно, довольно редко. Другой способ сделать это - задать определенные свойства, связанные с одной большой таблицей, и шаблоны динамических свойств (у классифицированных свойств много свойств). Но это, вероятно, не было бы хорошо с точки зрения производительности.