Лучший подход к переходу на удобный дизайн? ВНИМАТЕЛЬНО
Если вы не хотите сломать (и исправить) каждое приложение, которое в данный момент использует базу данных, ваши возможности ограничены, потому что вы не можете сильно изменить существующую структуру.
Прежде чем начать, тщательно продумайте свои мотивы - если у вас есть существующая проблема (ошибка, которую нужно исправить, улучшение, которое нужно сделать), то медленно продвигайтесь вперед. Тем не менее, редко стоит возиться с работающей производственной системой только для того, чтобы добиться улучшения, которое никто больше не заметит. Обратите внимание, что это может сыграть вам на пользу - если есть существующая проблема, вы можете указать руководству, что наиболее экономичный способ исправить ситуацию - это изменить структуру базы данных таким способом. Это означает, что у вас есть поддержка управления изменениями и (надеюсь) их резервное копирование, если что-то станет грушевидным.
Некоторые практические мысли ...
Производить одно изменение за раз ... и только одно изменение. Убедитесь, что каждое изменение корректно, прежде чем двигаться дальше. Старая пословица «измерить дважды, отрежь один раз» актуальна.
Автоматизировать Автоматизировать Автоматизировать ... Никогда не вносите изменения в производственную систему "вживую" с помощью SQL Server Management Studio. Написание сценариев SQL, которые выполняют все изменения за один раз; разработайте и протестируйте их на копии базы данных, чтобы убедиться, что вы правильно поняли. Не используйте производство в качестве тестового сервера - вы можете случайно запустить скрипт против производства; используйте выделенный тестовый сервер (если размер базы данных меньше 4 ГБ, используйте SQL Server Express, работающий на собственной машине).
Резервное копирование ... первым шагом в любом скрипте должно быть резервное копирование базы данных, чтобы вы могли вернуться, если что-то пойдет не так.
Документация ... если кто-то придет к вам через двенадцать месяцев и спросит, почему функция X их приложения не работает, вам потребуется история точных изменений, внесенных в база данных для диагностики и ремонта. Первый хороший шаг - сохранить все ваши сценарии изменений.
Ключи ... обычно рекомендуется хранить абстрактные первичные и внешние ключи внутри базы данных, а не раскрывать их через приложение. Вещи, которые выглядят как ключи на бизнес-уровне (например, номер вашего рабочего задания), имеют неприятную привычку иметь исключения. Введите ваши ключи как дополнительные столбцы с соответствующими ограничениями, но не изменяйте определения существующих.
Удачи!