Многие из моих баз данных имеют поля, определенные как varchars. Это не было большой проблемой, так как я живу и работаю в Америке (где единственный язык, который существует - это «американский». Хм )
После работы с базами данных в течение примерно 5 лет я обнаружил, что в конечном итоге у меня возникли проблемы с ограниченным характером поля varchar, и я должен изменить свои поля для хранения данных в виде nvarchars. После того, как мне пришлось сделать еще одно обновление таблицы, преобразовав поле varchar в nvarchar, у меня возникла мысль - почему мы до сих пор делаем это так? Я давно принял решение определить все новые текстовые поля для nvarchar вместо varchar, что я научился делать из своих учебников, когда учился в школе 10 лет назад.
Это 2011 год, и в прошлом году вышла новая версия SQL Server. Почему мы продолжаем поддерживать тип данных varchar, когда вместо этого можем / должны использовать nvarchar?
Я знаю, что часто утверждают, что nvarchars "вдвое больше", чем varchars, поэтому использование пространства хранения может быть одним из аргументов в пользу mactaining varcars.
Однако современные пользователи могут определить свои nvarchars для хранения данных как UTF-8 вместо UTF-16 по умолчанию, если они хотят сэкономить на пространстве хранения. Это позволит использовать 8-битное кодирование, если это в первую очередь желательно, и при этом дает гарантию, что редкий 2-8-байтовый символ, вставленный в их БД, ничего не сломает.
Я что-то пропустил? Есть ли веская причина, почему это не изменилось за последние 15-20 лет?