Является ли это «правильной» структурой базы данных?

Работаю с новой версией стороннего приложения. В этой версии изменена структура базы данных, мол "для повышения производительности".

Старая версия БД имела такую ​​общую структуру :

TABLE ENTITY
(
    ENTITY_ID,
    STANDARD_PROPERTY_1,
    STANDARD_PROPERTY_2,
    STANDARD_PROPERTY_3,
   ...
)

TABLE ENTITY_PROPERTIES
(
    ENTITY_ID,
    PROPERTY_KEY,
    PROPERTY_VALUE
)

, поэтому у нас была основная таблица с полями для основных свойств и отдельная таблица для управления пользовательскими свойствами, добавленными пользователем.

Новая версия встроенной БД имеет такую ​​структуру.:

TABLE ENTITY
(
    ENTITY_ID,
    STANDARD_PROPERTY_1,
    STANDARD_PROPERTY_2,
    STANDARD_PROPERTY_3,
   ...
)

TABLE ENTITY_PROPERTIES_n
(
    ENTITY_ID_n,
    CUSTOM_PROPERTY_1,
    CUSTOM_PROPERTY_2,
    CUSTOM_PROPERTY_3,
   ...
)

Итак, теперь, когда пользователь добавляет пользовательское свойство, новый столбец добавляется в текущую ENTITY_PROPERTYтаблицу, пока не будет достигнуто максимальное количество столбцов. (, управляемая приложением ), создается новая таблица.

Итак, мой вопрос: :Это правильный способ проектирования структуры БД? Это единственный способ "повысить производительность" ? Старая структура требовала множества соединений или под-выбора, но эта структура не кажется мне очень умной (или даже правильной )...

8
задан davioooh 20 April 2015 в 09:52
поделиться