Quel est le meilleur type de colonne pour un champ URL pour SQL Server?
Type: VARCHAR ou NVARCHAR?
Longueur ?
Similaire question pour MySQL .
Si vous êtes prêt à toujours encoder vos URL par URL avant de les stocker (un exemple trouvé par Google était l'encodage d'URL 中 .doc en% E4% B8% AD.doc), vous êtes sûr de coller avec varchar. Si vous souhaitez que les caractères non ASCII de vos URL restent lisibles dans la base de données, je recommanderais nvarchar. Si vous ne voulez pas vous faire prendre, optez pour nvarchar.
Étant donné que IE (le plus restrictif des navigateurs traditionnels) ne prend pas en charge les URL de plus de 2083 caractères, alors (à part toutes les considérations que vous pourriez avoir sur l'indexation ou la longueur des lignes), vous pouvez couvrir la plupart scénarios utiles avec nvarchar (2083).
Stockerez-vous des URL multilingues? Si c'est le cas, utilisez nvarchar
, sinon utilisez varchar
.
Modifier: Quant à la longueur, puisque IE limite les URL à 2 083 caractères vous pourriez utilisez-la comme longueur maximale de votre champ. Dans de tels cas, vous souhaitez utiliser le dénominateur commun le plus bas car vos URL doivent être utilisables dans tous les navigateurs. obtenir n'importe où près des limites même d'IE.
Pour quelque chose comme ça, je préfère toujours la prudence et utiliser le nvarchar.
Pour SQL Server, vous souhaiterez utiliser NVARCHAR, j'aurais pensé, car il existe des plans (si ce n'est déjà une action) pour les caractères non romains dans les URL. Je ne vois vraiment aucun problème ces jours-ci dans les exigences de stockage supplémentaires pour NVARCHAR sur VARCHAR.