Какова цель (или полезность) таблицы «версия» данных / приложения в базе данных? - PullRequest
1 голос
/ 11 апреля 2019

Это вопрос дизайна.

Какова цель или полезность наличия таблицы «Версия» в базе данных, в которой хранится дата обновления и версия базы данных и / или приложений, которые к ней подключаются.

Например, следующий DDL ...

CREATE TABLE
  [dbo].[Version]
  (
    FreshnessDate DATETIME,
    DatabaseVersion VARCHAR(10),
    ApplicationVersion VARCHAR(10)
  )

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

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

Обратите внимание, что нашим отделом управляет финансовый директор, который диктует требования к процессу. Этот вопрос, в частности, касается того, видит ли кто-то еще преимущества в таблице Version или нет. Поскольку кто-то из нашей команды предположил, что это не нужно , потому что нашего процесса, я добавил наш процесс в этот пост.

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

Спасибо!

1 Ответ

0 голосов
/ 17 апреля 2019

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

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

Я скорее удаляю его в зависимости от вашего рабочего процесса.

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