Beaucoup de mes bases de données ont des champs définis comme varchars. Cela n’a pas posé beaucoup de problèmes depuis que je vis et travaille en Amérique (où le seul langage qui existe est "américain". Ahem )
Après avoir travaillé avec des bases de données pendant environ 5 ans, j'ai finalement rencontré des problèmes avec la nature limitée du champ varchar et je devais modifier mes champs pour stocker des données en tant que nvarchars. Après avoir dû effectuer une autre mise à jour dans une table, en convertissant un champ varchar en un nvarchar, je viens juste de penser - pourquoi le faisons-nous toujours de cette manière? J'ai depuis longtemps pris la décision mentale de définir tous mes nouveaux champs de texte dans nvarchar, au lieu de varchar, ce que j'ai appris à faire avec mes manuels lorsque j'étais à l'école il y a 10 ans.
Nous sommes en 2011 et une nouvelle version de SQL Server est disponible l'année dernière. Pourquoi continuons-nous à prendre en charge un type de données varchar alors que nous pouvons / devrions utiliser nvarchar?
Je sais que l'on dit souvent que nvarchars est "deux fois plus grand" que varchars, de sorte que l'utilisation de l'espace de stockage pourrait être un argument pour maintenir des varcars.
Cependant, les utilisateurs d'aujourd'hui pourraient définir leur nvarchars pour stocker les données au format UTF-8 au lieu du format UTF-16 par défaut s'ils souhaitent économiser de l'espace de stockage. Cela permettrait un codage sur 8 bits si cela est principalement souhaitable, tout en garantissant que le caractère rare composé de 2 à 8 octets inséré dans leur base de données ne casse rien.
Est-ce que je manque quelque chose? Y a-t-il une bonne raison pour que cela n'ait pas changé au cours des 15 à 20 dernières années?