2010-06-21 8 views
2

Quel type de DataType doit être utilisé dans une colonne qui stockera généralement une chaîne courte (entre 10 et 40 caractères) mais stockera éventuellement une grande quantité de texte (500 à 1000 caractères)? La table qui contient cette colonne n'a que trois colonnes. Deux d'entre eux font une clé composite et l'autre est la colonne en question. Je n'aurai pas à trier ou à commander en fonction de cette colonne.Quel type de données dois-je choisir?

Alors, quel DataType dois-je choisir?

Merci d'avance. Désolé pour mon anglais.

Répondre

2

Il est un entre-Toss VARCHAR (1000) (vous pourriez en avoir besoin d'être supérieur à 1000), et juste en utilisant TEXT. Je ne sais pas si vous avez besoin de NOT NULL, mais de toute évidence ajouter que si vous en avez besoin.

Notez que si vous définissez VARCHAR, vous imposez une limite définie sur la taille de la colonne. Utilisez VARCHAR seulement si vous savez avec certitude que vous ne dépasserez pas cette taille. Si vous avez des valeurs aberrantes, allez simplement avec TEXT.

+0

Merci. Je vais le garder comme varchar (1000). Je n'aurai pas à dépasser la limite de 1000. Et bien sûr, je vais ajouter l'option non nulle. Merci encore. – Juliano

0

VARCHAR(1000)

0

Je me botte encore pour avoir choisi VARCHAR alors que j'aurais pu utiliser TEXT.

Par exemple, j'avais une table pour les numéros de téléphone:

number  VARCHAR(50) , 
description VARCHAR(100) , 

Normalement « description » est juste quelque chose comme « cellule » ou « maison », mais parfois vous voulez taper quelque chose comme "Téléphone portable de Sister, ne pas appeler en cas d'urgence parce qu'elle travaille nuits!" - alors vous êtes dans une crique. Si vous utilisez VARCHAR, je mettrais un montant maximum qui est bien au-dessus de ce que vous imaginez de tout ce qui pourrait y arriver, et même alors, vous ne pouvez pas anticiper tous les cas d'utilisation. En outre, vous devez toujours écrire du code de gestion de code pour les instances lorsque la longueur du texte d'entrée est supérieure à la longueur maximale autorisée. Pourquoi mettre une contrainte quand vous n'êtes pas obligé de le faire? Pourquoi écrire le code de manipulation si vous n'avez pas à le faire? Le gain de performance est-il vraiment si important?

Questions connexes