• Альтернатива EAV?

    zo0m
    @zo0m
    full stack developer
    Это вполне себе нормальный подход. Встречал такое (param1,param2) даже в крупных энтерпрайз решениях, т.к. не всегда можно альтер тейбл эффективно выполнить, чтобы добавить поле, и (или) ваш кейс, когда есть набор атрибутов которые свойственны части сущностей и не пересекаются.

    Только маппинг для каждой сущности я бы вынес отдельно:
    var productToExtraMap = {
      'tv'  : {
       matrix :  'extra_1',
       remoteControl : 'extra_2'
       },
      'dvd' : { 
        ...
       }
    }


    и по такой мапе собирать объекты.

    Тогда у вас будет 1 место где собирается объект и 1 место где декларируется маппинг. Не будет лишних вложенных ифов и т.п.

    П.С. Мапу можно и по другому развернуть, это уже как вам удобнее.
    Ответ написан
    Комментировать
  • Альтернатива EAV?

    dizballanze
    @dizballanze
    Software developer at Yandex
    костыль это, а не альтернатива, уже давно в нормальных СУБД, вроде PostgreSQL есть типы данных вроде массива и хэш-таблицы
    Ответ написан
    Комментировать