Мы хотим реализовать функцию «контроля версий» в нашем проекте Java (JSF / EJB / JSF).Позвольте мне привести пример:
-----
| A |
-----
1/\1
/ \
*/ \*
----- -----
| B | | C |
----- -----
На приведенной выше диаграмме показан простой объект-граф с 3 объектами, т. Е. A, B и C. B и C "являются частью" A, любые изменения в A и/ или B и / или C необходимо создать новую версию A.
Вопрос в том, как реализовать это, как на стороне Java, так и на стороне базы данных?
Мы получили 2 решения, такдалеко и еще не определено:
SolutionA : очень изменения в частях A приведут к новому глубокому клону A, и этот клон будет устойчивым через JPA к базе данных в качестве новой версии,Плюсы: реализация проста, минусы: есть много избыточности (учитывая случай, когда граф объектов очень большой) как на стороне Java, так и на базе данных.
SolutionB : только создавать измененную частьА в базе данных.Плюсы: нет избыточности, производительность БД может быть лучше.Минусы: это нарушает объект-граф, и мы должны вручную поддерживать отношения / ссылки между объектами.может превратить развитие в кошмар.
Есть идеи?