Управление важной бизнес-логикой времени выполнения в отношении кодовой базы - PullRequest
1 голос
/ 14 апреля 2010

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

  • какие столбцы сетки показывать / скрывать
  • фильтры по умолчанию для применения к каждому виду сетки
  • заголовки столбцов
  • сортировка
  • subtotaling
  • ...

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

Вопрос в том, Где должны храниться эти данные? Они определенно будут жить в базе данных, потому что именно так к ним обращаются, но я чувствую, что их также нужно хранить с контролируемой версией кодовая база , потому что это неотъемлемая часть функционирования приложения. Кто-нибудь имел дело с такой проблемой раньше? Что ты в итоге делал?

Ответы [ 2 ]

1 голос
/ 14 апреля 2010

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

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

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

В качестве альтернативы вам может потребоваться триггер, который будет хранить все изменения данных в таблице аудита. Затем вы можете использовать таблицу аудита для получения данных в случае необходимости (но все равно делать резервные копии!)

...