2012-03-10 4 views
0

Мы разрабатываем приложение на основе SAAS. Одним из требований является запись каждого изменения в таблицах базы данных, то есть создание даты и времени на основе данных. Клиент должен иметь возможность вернуться к любой версии данных.Дата версии и восстановление

У меня почти 30 таблиц в базе данных, а частота ввода данных составляет 80 000 записей, добавленных/обновляемых в день через массовый импорт. Однако клиент может также использовать графический интерфейс для вставки данных через формы (кроме массового импорта).

Прежде чем создавать какую-либо стратегию для реализации этого требования, я хотел бы получить ваши комментарии/предложения о том, как реализовать это.

На боковой ноте, я рассмотрел this blog post и нашел это очень хорошей отправной точкой, но я все еще сомневаюсь, как восстановить прошлые данные.

База данных - многообещающее решение, но, как я уже сказал ранее, это приложение на основе SAAS, и мы сохраняем несколько данных клиентов в одной базе данных, а моментальный снимок также восстанавливает данные для других клиентов.

Просьба предложить любую стратегию/план по выполнению этого требования.

ответ

0

Если вы планируете использовать JPA/Hibernate для извлечения данных, вы можете дать Envers выстрел.

Envers - проект JBoss с открытым исходным кодом для поддержки версий объектов базы данных. Вы можете пометить некоторые столбцы всей таблицы аннотацией @Audited, чтобы начать отслеживать историю аудита. Он обычно хранит все данные аудита в таблице с именем _AUDIT. Он также предоставляет API для запроса исторических данных.

Для получения дополнительной информации, пожалуйста, пройти через http://www.jboss.org/envers

+0

Мы планируем перейти на Spring Framework, так что я предполагаю, что мы будем использовать Hibernate в качестве ORM. Наша главная проблема заключается в огромном количестве данных в ассоциативных таблицах, которые мы также должны использовать. Во-вторых, верните данные обратно в любую версию. – Saqib

Смежные вопросы