Я работаю над спецификацией продукта (спецификация) и застрял.Это моя диаграмма классов:
- Компонент имеет ComponentItems.У ComponentItem есть Компонент и количество.Пример: Компонент ABC имеет 3 компонента C1 и 2 компонента C2.
- Продукт имеет ComponentItems и ProductItems (аналогично ComponentItems, но для продуктов).
Каждый компонент имеет стоимость единицы,ComponentItem имеет общую стоимость.И у Компонента, составленного ComponentItems, также есть общая стоимость (сумма стоимости ComponentItems).
Эта структура позволяет мне создавать любую иерархию Продукта / Компонента.Я проверяю циклы при вставке / обновлении продуктов и компонентов.
Я хочу, чтобы каждая стоимость обновлялась в базе данных, я не хочу рассчитывать стоимость, используя объекты каждый раз, когда мне приходится использовать Продукт / Компонент.Я имею в виду, что если я обновлю стоимость единицы измерения компонента ABC, то стоимость его родительского компонента должна быть обновлена и т. Д. -> обновление распространяется в иерархии.
Каков наилучший способ реализации этого?Я думал о представлении дерева.Когда компонент обновляется, я извлекаю все связанные компоненты / продукты и строю дерево.Затем я должен обновить родителей первого уровня компонента и сделать то же самое с родителями этих родителей.