Есть «главный» объект базы данных у которого связь один ко многим (максимум 100 единиц на практике) а у нее в свою очередь еще две (в одной может быть 1000 объектов во второй максимум 100). Этот объект должен отправляться на сервер со всеми связями в случае если поменялся один из его «подобъектов».
У каждого объекта в иерархии есть статус того был ли залит он на сервер или нет.
Есть таблица которая отображает список этих главных объектов со статусом синхронизирована она c сервером или нет. В случае если мы добавили какой-то «подобъект» и удалили его то объект должен отображаться в списке по прежнему в статусе - синхронизирован.
Теперь вопрос: какое решение концептуально будет лучше?
1. Иметь лишний булевый флаг в главном объекте который говорит нам о том что «главный» объект синхронизирован с сервером. Тогда мы при добавлении любого подобъекта устанавливаем этот флаг в false и спокойно переотрисовываем нашу таблицу по этому флагу вычитав просто новый список этих объектов из базы.
В случае удаления объекта нам нужно пройтись по всей иерархии или сделать sql запрос чтобы посмотреть все ли объекты залиты и мы удилили единственный который не был залит и «главный» объект полностью синхронизирован с сервером.
2. Не делать флаг а вычитывать каждый раз при показе таблицы «главные» объекты с помощью сложного sql запроса который дает нам те объекты, обходя иерархию, которые не были полностью синхронизированы. Получается в данном случае надо вычитать сначала все объекты, а потом те которые не были синхронизированы.
Мне очень интересно послушать ваше мнение по этому поводу.
oop, pattern, select, базы данных