Я пытаюсь смоделировать простой редактор диаграмм, который сохраняет данные в хранилище данных HRD GAE, и я сталкиваюсь с проблемами, которые меня интересуют, можете ли вы дать мне несколько советов. В основном, модель редактора:
[Диаграмма] - содержит -> [Фигуры] - содержит -> [Текст]
Сначала я поместил их в одну группу сущностей, чтобы убедиться, что данные согласованы. Таким образом, всякий раз, когда я добавляю новые фигуры или добавляю текстовые объекты к существующим фигурам, они отображаются правильно (как это запрашивается из хранилища данных); однако у меня возникла проблема, поскольку пользователь мог быстро добавлять множество фигур, что приводит к более чем одному обновлению объекта диаграммы в секунду, что приводит к конфликту при записи.
В качестве альтернативы я мог бы сделать так:
[Диаграмма] [Форма - содержит идентификатор диаграммы] [Текст - содержит идентификатор формы]
, которые помещают их в другую группу сущностей, и когда я создаю новую фигуру, мне просто нужно сохранить сам объект фигуры. Это решает проблему конфликта записи, но данные больше не согласованы - в зависимости от того, как скоро HRD завершит запись, я могу получить устаревшие данные.
Я пробовал комбинации, такие как помещение диаграмм в кеш и извлечение из HRD, только если кеш не содержит диаграмму; однако, это непредсказуемо, так как я не могу быть уверен, что диаграмма будет в кеше (я ожидаю, что многие диаграммы будут редактироваться одновременно) ...
Как лучше всего справляться с такой проблемой? Я использую Java и JDO, если это что-то меняет ...