Использование двух баз данных взаимозаменяемо с одинаковыми структурами, но разными соглашениями об именах

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

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

Какой лучший способ решить это? Это можно сделать изнутри SQL Server?

1 ответ

Решение

Я думаю, что два самых простых варианта:

  • Создайте представление для каждой переименованной таблицы. Имя старой таблицы - это новое имя для вашего представления. Старые столбцы отображаются на новые столбцы. Никаких изменений кода приложения не требуется.
  • Или, если у вас есть слой кода для сопоставления, вы, вероятно, используете ORM или какой-либо другой уровень абстракции БД. Если возможно, сделайте свое сопоставление здесь перед запросом, добавив псевдонимы столбцов или переименовав поля объекта / массива результирующего набора.
Другие вопросы по тегам