Стратегия обновления данных в базах данных (Oracle) - PullRequest
1 голос
/ 05 октября 2010

У нас есть продукт, использующий Oracle, с около 5000 объектов в базе данных (таблицы и пакеты).Продукт был разделен на две части, первая - это сложная часть: клиент, пакеты и схема базы данных, а вторая состоит в основном из программных данных, представляющих процессы (рабочий процесс), которые можно настроить для работы на нашем продукте.

Итак, базовые процессы (рабочие процессы) поставляются как часть продукта, наши клиенты могут изменить эти процессы и адаптировать их к своим потребностям; проблема возникает при попытке перейти на более новую версию продукта, а затем при попытке обновитьданные базы данных, есть проблемы для записей, удаленных или измененных нашими клиентами.

Есть ли стратегия для решения этой проблемы?

1 Ответ

2 голосов
/ 05 октября 2010

Обычно программный продукт состоит не только из объектов клиента и схемы, но и из данных;как правило, его называют «статическими данными», т. е. это данные, которые должны изменяться только разработчиком программного обеспечения и обычно не могут быть изменены конечными пользователями.

Если конечные пользователи обходят ваши средства управления безопасностью и изменяют/ удалите статические данные, затем вам необходимо:

  1. написать код, который обнаруживает и компенсирует любые изменения, которые мог сделать конечный пользователь;например, стереть таблицы и заполнить их данными «заведомо хороших»;
  2. получить образцы модификаций от ваших клиентов, чтобы вы могли вручную написать собственные сценарии обновления для них, не затрагивая их настройки;или
  3. не разрешать изменение статических данных (т. е. если они настраивают продукт, изменяя данные, которые им не следует, вы говорите: «Извините, вы изменили продукт, мы вас не поддерживаем».

Из вашего описания, однако, похоже, что ваш продукт предназначен для того, чтобы клиенты могли настраивать его, изменяя данные в этих таблицах, и в этом случае ваш код просто должен быть в состоянии адаптироваться к любым изменениям, которые ониЭто должно быть основополагающим фактором при разработке обновления. Стратегия состоит в том, чтобы перечислять все типы изменений, которые пользователи могли внести (или могут сделать), и учитывать их. Единственное жизнеспособноеальтернатива # 1 выше, которая удаляет все настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...