глобальная версия данных SQL Server - PullRequest
0 голосов
/ 07 июня 2011

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

  1. Стоит ли хранить эту информацию в таблице?
  2. Следует ли использовать триггеры дляэто?

Ответы [ 4 ]

2 голосов
/ 07 июня 2011

Этот номер версии может быть сохранен в таблице конфигурации или в отдельной таблице (с одним полем).

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

Каждый пакет развертывания должен позаботиться об обновлении номера версии схемы и схемы базы данных (при необходимости)

1 голос
/ 07 июня 2011

Я склонен иметь глобальную таблицу или таблицу настроек с различными псевдостатическими значениями.
- Всего один ряд
- много полей

Это может включать номера версий.

С точки зрения сохранения номера версии, на которую вы ссылаетесь, изменится ли это при изменении содержимого данных? Если так, то триггер был бы полезен. Если вы хотите, чтобы номер версии относился к структурам таблиц и т. Д., Я был бы более склонен управлять этим вручную. (Некоторые изменения могут быть неактуальными с точки зрения приложений, или может быть несколько изменений в одном обновлении версии.)

0 голосов
/ 08 июня 2011

Чтобы завершить предыдущие ответы, я натолкнулся на концепцию «Миграции» (очевидно, из мира Ruby on Rails), и уже был вопрос о SO, который охватывал существующие фреймворки в .Net.

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

предыдущий вопрос SO с обзором параметров: https://stackoverflow.com/questions/313/net-migrations-engine

0 голосов
/ 07 июня 2011

Лучший способ реализовать «глобальную версию данных для базы данных» - через систему контроля версий и процесс сборки.Когда все изменения будут отправлены и пройдены тестирование, процесс сборки увеличит вашу схему номеров версий.

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

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