• Какую структуру данных выбрать для описания конфигуратора изделия?

    @AlexPro197 Автор вопроса
    Коллеги, большое спасибо за мнения и идеи.

    Если бы не периодические изменения, можно было бы все сделать как mayton2019 предложил.
    Но вот из-за того, что производство будет менять свои требования, и возник вопрос.

    С учетом полученных ответов и идей вариант решения сейчас видится таким:
    Описание опций и взаимосвязей:
    ListOptions – список, в котором хранятся опции и их параметры (позиция опции в коде заказа, ее описание, мин и макс значения параметра, флаг доступности) и ссылка на другой список ListRelatons, элементами которого являются зависимые и параметры накладываемых ограничений (мин и макс значения параметра, флаг доступности опции).
    Для хранения списков можно использовать базу данных или Excel.
    Процедура конфигурирования:
    1. Создается ListConfiguration, в который копируется ListOptions.
    2. В интерфейсе пользователя настраиваются контролы (как mayton2019 предложил) в соответствии с текущими данными из ListConfiguration.
    3. При выборе пользователем какой-либо опции алгоритм выполняет проход по списку ListRelatons для выбранной опции и применяет ограничения из него к параметрам опций в ListConfiguration. Если ранее выбранные параметры для опции выходят за обновленные параметры пользователю выдается сообщение.
    4. Если выбраны не все позиции (продукт сконфигурирован не полностью), то переход на шаг 2.

    Если есть комментарии/замечания таком по варианту – пишите, пожалуйста.