Question

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 qu'il coïncide avec ma table de base de données où le champ est varchar(50), mais j'ai ensuite commencé à me poser des questions.

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 serait important dans votre réponse.

MODIFIER: je n'ai pas vu cette question plus large concernant des questions similaires.

Était-ce utile?

La solution

Catalogue des normes de données du gouvernement britannique suggère 35 caractères pour chacun des prénoms et noms de famille, ou 70 caractères pour un seul champ contenant le nom complet.

Autres conseils

Je sais que je suis en retard sur celui-ci, mais j'ajouterai quand même 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, sans tenir compte du fait que les gens migrent et emportent leur nom avec eux.

Par exemple, les Espagnols portant ces noms de famille 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 leur nom de famille ; certains noms africains peuvent être considérablement plus longs que la plupart des noms européens.

Essayez de rendre chaque colonne 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 le nom de famille et je n'ai jamais rencontré de problèmes.

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

S'il s'agit du nom complet dans un champ, j'utilise généralement 128 - 64/64 pour le premier et le dernier dans des champs séparés - on ne sait jamais.

@Ian Nelson :Je me demande si d'autres y voient le problème.

Disons que vous avez des champs divisés.Cela fait 70 caractères au total, 35 pour le prénom et 35 pour le nom de famille.Cependant, si vous n'avez qu'un seul champ, vous négligez l'espace qui sépare le prénom et le nom, bref vous changeant d'1 caractère.Bien sûr, il ne s'agit que d'un seul caractère, mais cela pourrait faire la différence entre quelqu'un qui entre son nom complet et quelqu'un qui ne le fait pas.Par conséquent, je changerais cette suggestion en "35 caractères pour chacun des prénoms et noms de famille, ou 71 caractères pour un seul champ contenant le nom complet".

Au Royaume-Uni, il existe quelques normes gouvernementales qui s'appliquent avec succès à la majeure partie de la population britannique : le Bureau des passeports, la Driver & Vehicle Licensing Agency, le Deed Poll office et le NHS.Ils utilisent évidemment des normes différentes.

Changer votre nom par Deed Poll autorise 300 caractères;

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

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

NOM DU PATIENT
Format/longueur :maximum an70

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

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

Nous en utilisons 50.

Ce que vous posez en réalité est une question connexe, mais sensiblement différente :à quelle fréquence dois-je tronquer les noms afin de 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 celles concernant les ressources utilisées par la base de données.Compte tenu du peu de différence de surcharge entre les différentes longueurs maximales d'un champ varchar, je préférerais généralement ne jamais être obligé de tronquer un nom et de rendre le champ aussi grand que j'osais.

Notez que beaucoup des cultures ont des « deuxièmes noms de famille », souvent appelés noms de famille.Par exemple, si vous avez affaire à des Espagnols, ils apprécieront que leur nom de famille soit séparé de leur « nom de famille ».

Le mieux est de définir un type de données pour les composants de nom, d'utiliser ceux pour un type de données pour le nom de famille et de les modifier en fonction des paramètres régionaux.

Le prénom moyen est composé 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 tant que vous n'aurez pas plusieurs millions de lignes.

selon 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, cela est différent d'une nation à l'autre, mais pour économiser les ressources et la mémoire de votre base de données, séparez les champs de nom et de prénom et utilisez varchar (30), je pense que cela fonctionnera.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top