Quelle est la limite de longueur raisonnable des champs «Nom» des personnes?

138

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.

En voie de disparitionMassa
la source
1
Vérifiez cette question connexe pour de nombreuses discussions sur le sujet.
Chris Marasti-Georg
2
Quelque chose à noter, à l'ère de la mondialisation, varchar n'est généralement PAS le bon type de données, il y a de fortes chances que vous utilisiez nvarchar.
Tao
@Tao: Puisqu'il utilise MS SQL Server, je suis d'accord. Mais VARCHAR est le bon type de données dans d'autres implémentations SQL qui prennent mieux en charge UTF-8.
dan04

Réponses:

142

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.

Ian Nelson
la source
3
Le lien doit être mis à jour à compter du 22 octobre 2010. J'ai recherché sur Google: site: *. Gov.uk Nom "35 caractères" et j'ai trouvé ce document justice.gov.uk/guidance/docs/electoral-reg-standards.pdf
Tony R
Leurs liens semblent vraiment mauvais ... à partir de 8/2012: webarchive.nationalarchives.gov.uk/+/http
Thomas B
6
Le nom complet "raisonnable" le plus long que j'ai trouvé est "Gisele Marie-Louise Marguerite LaFleche" (39 octets).
user1154664
Un peu plus grand 54 caractères: gw.geneanet.org
...
3
La Nouvelle-Zélande limite les noms complets: ils doivent comporter moins de 100 caractères, espaces compris, et ne peuvent contenir ni symboles ni chiffres. Je suppose que les tirets sont autorisés dans les noms de famille, cependant.
Glutnix
27

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.

Noel Cosgrave
la source
Merci pour la réponse, même si cela fait longtemps.
EndangeredMassa
9

J'utilise généralement varchar (255) (255 étant la longueur maximale d'un type varchar dans MySQL).

pix0r
la source
30
Et réservez-vous également 255 caractères d'espace dans vos interfaces graphiques et autres supports où le prénom / nom est affiché? ;-)
AndrewBourgeois
2
J'avais l'habitude de penser: "Pourquoi ne pas toujours utiliser varchar (255)?" Maintenant, je réalise que les contraintes de longueur concernent principalement l'interface utilisateur, et les contraintes sur lesquelles les concepteurs peuvent dépendre lors de la conception de leur interface utilisateur, il s'agit alors d'utiliser trop d'espace dans la base de données.
jdg
6

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.

Greg Hurlman
la source
6

@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».

Thomas Owens
la source
2
Le but de suivre ce document est que vous êtes interopérable avec d'autres systèmes du gouvernement britannique, de sorte que vous ne pouvez pas augmenter individuellement les 70 à 71 et l'appeler par jour, sinon les systèmes avec une limite de 70 caractères couperont votre texte. (Vous n'êtes pas censé stocker les données sous les deux formes au sein de votre propre système.) Cela s'aggrave en fait, car le nom complet comprend non seulement la famille / donné, mais également le titre et le suffixe, qui ont également une limite de 35 caractères chacun, pour un maximum de 143 caractères amusants dans les champs en annexe. Suce d'être le développeur qui doit échanger des données avec les deux formes de stockage de noms.
mmitchell
3
Il est clair que les directives sont rédigées dans l'espoir qu'une personne peut avoir un long prénom (jusqu'à 35 caractères) ou un long nom de famille (jusqu'à 35 caractères), mais il est peu probable que les DEUX parties du nom soient aussi longues.
Ian Nelson
3

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 ;

Il n'y a pas de limite légale sur la longueur de votre nom, mais nous imposons une limite de 300 caractères (y compris les espaces) pour votre nom complet.

Le NHS utilise 70 caractères pour les noms de patients

NOM
DU PATIENT Format / longueur: max an70

Le bureau des passeports autorise 30 + 30 premier / dernier et les permis de conduire (DVLA) sont 30 au total.

Notez que les autres organisations auront leurs propres restrictions sur ce qu'elles afficheront sur les documents qu'elles produisent - pour HM Passport Office, la limite est de 30 caractères chacune pour votre prénom et votre nom de famille, et pour le DVLA, la limite est de 30 caractères au total pour votre nom complet.

Steve Cooper
la source
2

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é.

Coin
la source
1

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.

ColinYounger
la source
Il n'y a aucun avantage à réduire les limites dans les paramètres régionaux qui ont statistiquement des valeurs plus petites - la taille du champ n'affecte pas l'espace occupé, à moins que certaines valeurs n'occupent réellement ces caractères supplémentaires autorisés (et cela signifie que vous avez fait le bon choix de toute façon) !
Tao
0

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.

Craig
la source
6
Si vous avez 50 millions de valeurs entre 10 et 15 caractères dans une colonne varchar (20) et les mêmes 50 millions de valeurs dans une colonne varchar (50), elles occuperont exactement le même espace. C'est tout l'intérêt de varchar, par opposition à char.
Tao
0

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.

Themba Mabaso
la source