J'ai un formulaire Web simple qui permettra aux utilisateurs non authentifiés de saisir leurs informations, y compris leur nom. J'ai donné au champ de nom une limite de 50 caractères pour coïncider avec ma table de base de données où le champ est varchar (50), mais j'ai commencé à me demander.
Est-il plus approprié d'utiliser quelque chose comme le type de colonne Texte ou dois-je limiter la longueur du nom à quelque chose de raisonnable?
J'utilise SQL Server 2005, au cas où cela importe dans votre réponse.
EDIT: Je n'ai pas vu cette question plus large concernant des problèmes similaires.
Réponses:
Le catalogue des normes de données du gouvernement britannique suggère 35 caractères pour chaque prénom et nom de famille, ou 70 caractères pour un seul champ contenant le nom complet.
la source
Je sais que je suis en retard sur celui-ci, mais je vais quand même ajouter ce commentaire, car d'autres pourraient bien venir ici à l'avenir avec des questions similaires.
Méfiez-vous des modifications de la taille des colonnes en fonction des paramètres régionaux. Pour commencer, cela vous prépare à un cauchemar de maintenance, laissant de côté le fait que les gens migrent et emportent leur nom avec eux.
Par exemple, les Espagnols avec ces noms supplémentaires peuvent déménager et vivre dans un pays anglophone, et peuvent raisonnablement s'attendre à ce que leur nom complet soit utilisé. Les Russes ont des patronymes en plus de leurs noms de famille, certains noms africains peuvent être considérablement plus longs que la plupart des noms européens.
Faites en sorte que chaque colonne soit aussi large que possible, en tenant compte du nombre potentiel de lignes. J'utilise 40 caractères chacun pour le prénom, les autres prénoms et nom de famille et je n'ai jamais trouvé de problème.
la source
J'utilise généralement varchar (255) (255 étant la longueur maximale d'un type varchar dans MySQL).
la source
Si c'est le nom complet dans un champ, je vais généralement avec 128 - 64/64 pour le premier et le dernier dans des champs séparés - vous ne savez jamais.
la source
@Ian Nelson: Je me demande si d'autres voient le problème là-bas.
Disons que vous avez des champs séparés. Cela fait 70 caractères au total, 35 pour le prénom et 35 pour le nom de famille. Cependant, si vous avez un champ, vous négligez l'espace qui sépare le prénom et le nom, bref vous changeant de 1 caractère. Bien sûr, ce n'est "qu'un" personnage, mais cela pourrait faire la différence entre quelqu'un qui saisit son nom complet et quelqu'un qui ne le fait pas. Par conséquent, je changerais cette suggestion en «35 caractères pour chacun du prénom et du nom de famille, ou 71 caractères pour un seul champ pour contenir le nom complet».
la source
Au Royaume-Uni, il existe quelques normes gouvernementales qui traitent avec succès la majeure partie de la population britannique - le bureau des passeports, l'agence de délivrance des permis de conduire et de véhicule, le bureau de vote et le NHS. Ils utilisent des normes différentes, évidemment.
Changer votre nom par acte Sondage autorise 300 caractères ;
Le NHS utilise 70 caractères pour les noms de patients
Le bureau des passeports autorise 30 + 30 premier / dernier et les permis de conduire (DVLA) sont 30 au total.
la source
Nous utilisons 50.
la source
Ce que vous posez vraiment est une question connexe, mais substantiellement différente: à quelle fréquence est-ce que je veux tronquer les noms pour les intégrer dans la base de données? La réponse dépend à la fois de la fréquence des différentes longueurs de noms ainsi que des longueurs maximales choisies. Cette préoccupation est contrebalancée par les préoccupations concernant les ressources utilisées par la base de données. Compte tenu de la faible différence de frais généraux entre les différentes longueurs maximales d'un champ varchar, j'aurais généralement tort de ne jamais être obligé de tronquer un nom et de rendre le champ aussi grand que j'aurais osé.
la source
Notez que de nombreuses cultures ont des «seconds noms de famille» souvent appelés noms de famille. Par exemple, si vous avez affaire à des Espagnols, ils apprécieront d'avoir un nom de famille séparé de leur «nom».
Le mieux est de définir un type de données pour les composants du nom, de les utiliser pour un type de données pour le nom de famille et d'ajuster en fonction des paramètres régionaux.
la source
Le prénom moyen est d'environ 6 lettres. Cela laisse 43 pour un nom de famille. :) On dirait que vous pourriez probablement le raccourcir si vous le souhaitez.
La question principale est de savoir combien de lignes pensez-vous avoir? Je ne pense pas que varchar (50) va vous tuer jusqu'à ce que vous obteniez plusieurs millions de lignes.
la source
en fonction de qui va utiliser votre base de données, par exemple les noms africains feront l'affaire avec varchar (20) pour le nom et le prénom séparés. Cependant, il est différent d'une nation à l'autre, mais pour sauver les ressources et la mémoire de votre base de données, séparez les champs nom et prénom et utilisez varchar (30) pense que cela fonctionnera.
la source