Я подозреваю, что вам лучше обслужить звездную схему и денормализованные таблицы измерений.Ваша базовая таблица будет действовать как таблица фактов.Ваши критерии поиска будут развернуты в несколько столбцов и помещены в одну или несколько таблиц измерений.
Например, если атрибут A полностью зависит от атрибута B, а атрибут B полностью зависит от атрибута C, вы можете сделатьтаблица измерений с (C, B, A), а затем перенести C в базовую таблицу как внешний ключ.Повторите для всех связанных наборов атрибутов.
Если у вас есть некоторые нечетные атрибуты с низким количеством элементов, которые не имеют четкого отношения, но объединяются в кластеры, вы можете создать другую таблицу измерений из их перекрестного продукта, добавить первичный ключ и перенести этот ключ.к базовой таблице.
Если требуется 3-я нормальная форма (и она должна быть обязательна, если данные обновляются несколькими процессами), тогда вы можете нормализовать таблицы измерений в так называемую снежную чешуйкуразмеры.Вы заплатите за это, так как каждый запрос требует большего количества соединений.