Лучшие практики для управления обновлением базы данных со сложным набором изменений - PullRequest
0 голосов
/ 15 апреля 2010

Я пишу приложение, в котором у меня есть общедоступная информация в базе данных, которую я хочу, чтобы пользователи могли редактировать. Информация не является текстовой, как вики, но похожа по своей концепции, потому что изменения все больше приближают публичную информацию к правде. Изменения коснутся нескольких таблиц, и обновление должно быть автоматически проверено, прежде чем повлиять на публичные таблицы.

Я работаю над дизайном, и мне интересно, есть ли лучшие практики, которые могут помочь с некоторыми конкретными проблемами.

  1. Я хочу предоставить возможность отмены.
  2. Я хочу показать пользователю объединенный результат всех их изменений.
  3. Когда пользователь говорит, что он готов, мне нужно проверить базовые общедоступные данные, чтобы убедиться, что они не были изменены кем-то другим.

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

Существуют ли какие-либо приемы, которые я мог пропустить, или полезные бумаги или шаблоны?

Заранее спасибо!

1 Ответ

0 голосов
/ 15 апреля 2010

Я бы сделал это так:

  • Использовать только базы данных вставки, вы никогда не обновляете данные, добавляете только новые строки
  • У каждой строки есть действительная дата, действительная дата и кто внес изменение
  • Считать данные с помощью запроса, где значение valid to date = null, и строка утверждена, это дает самую последнюю строку
  • Когда пользователь добавляет данные, он может увидеть свои изменения, выбрав последнюю строку, которую он добавил
  • Когда пользователь доволен внесенными изменениями, он может пометить их как одобренные
  • Когда они одобрены, их могут видеть другие пользователи
  • Отмена не является проблемой, так как у вас есть все предыдущие версии, вы можете пометить строку как более не утвержденную и вернуться к предыдущей версии.
...