2010-11-28 5 views
4

Possible en double:
List of standard lengths for database fieldsQuelle devrait être la longueur typique du nom complet de l'utilisateur dans la base de données

simple que cela, ce qui devrait être la longueur typique de permis « Nom complet » de un utilisateur dans la base de données? Lorsque je crée une table users, je la règle généralement comme varchar 31 ou 32 (en fonction de la performance). Qu'est-ce que vous utilisez les gars et quelle est la convention standard/typique.


Sidenote: Je ne face à problème de longueur e-mail (comme je l'ai mis 254) et mot de passe (hachage, longueur 32).

+0

Réglez-le sur 128. disque et la mémoire est pas cher. Ou mieux, utilisez une base de données qui ne vous force pas à imposer des restrictions de taille. –

+1

J'utilise MySQL, donc je dois mettre une restriction. – WhatIsOpenID

Répondre

1

Je recommande au moins 128.

+1

Quelle est la longueur dans Facebook. Des idées ? – WhatIsOpenID

+0

@WhatIsOpenID, je suppose qu'ils n'utilisent pas une base de données qui nécessite des restrictions de taille – jimyi

+1

Mais il ne sera pas encombrer l'espace? Imaginez des gens qui mettent 128 noms longs sur Facebook et des commentaires le montrant. Presque toute la ligne sera couverte par des commentaires seulement. – shamittomar

6

Le maximum de votre champ varchar moyen permet (254?).

Vous ne gagnez rien en le rendant arbitrairement plus court. Les contrôles de taille fine sur les nombres et les caractères sont plus ou moins une relique du passé, quand chaque octet importait. Cela peut être important aujourd'hui - si vous traitez des dizaines ou des centaines de millions de lignes, ou des milliers de requêtes par seconde. Pour votre base de données moyenne (c'est-à-dire 99% d'entre eux), les performances proviennent d'une indexation et d'une interrogation appropriées, et non d'une réduction de quelques octets de vos lignes.

Limitez uniquement la longueur d'un champ lorsqu'il existe une spécification formelle qui définit une longueur maximale, comme 13 chiffres pour un code EAN ou 12 caractères pour un code ISIN.

+3

Il ne s'agit pas de sauvegarder l'espace de la base de données. Il s'agit de l'encombrer moins. Comme shamittomar a dit: « Imaginez les mettre 128 noms longs ombles dans Facebook et les commentaires montrant. Ligne Presque tout sera couvert par se commentaires seulement. » – WhatIsOpenID

+2

dépend où vous en avez besoin. Si c'est un vrai nom, je vous recommande de ne pas le restreindre dans la base de données, mais de tronquer le nom pour l'affichage le cas échéant (par exemple afficher les 30 premiers caractères et utiliser le '-Tag '). Si c'est un nom d'utilisateur, il suffit de choisir un nombre, 32 devrait être bien. – Martin

0

Eh bien, vous pouvez simplement le mettre à 255 si vous voulez. varchars est un type de stockage de longueur variable. Cela signifie qu'il ya 1 octet qui stocke la longueur réelle de la chaîne, les varchars n'utilisent pas plus de piqûres que nécessaire pour le stockage, cela n'a donc pas d'importance. Ceci est décrit sur la page mysql

Description peut être trouvé ici http://dev.mysql.com/doc/refman/5.0/en/char.html Il est illustré à mi-chemin de la page vérifier le tableau.

Les valeurs VARCHAR ne sont pas remplies lorsque elles sont stockées. La gestion des espaces de fin de fichier dépend de la version. À partir de MySQL 5.0.3, les espaces de fin sont conservés lorsque les valeurs sont stockées et récupérées, en conformité avec SQL standard. Avant MySQL 5.0.3, les espaces de fin sont supprimés des valeurs lorsqu'ils sont stockés dans une colonne VARCHAR ; cela signifie que les espaces sont également absents des valeurs récupérées.

Conclusion: Stockage vous pouvez toujours aller sage pour 255 car il utilise l'habitude de l'espace supplémentaire et vous obtenez l'habitude des problèmes d'intro avec une ficelle se couper.

Greetz

2

Nom complet est toujours une colonne calculée composée de prénom, dernier, préfixe, suffixe, degré, nom de famille, etc dans mes dessins.La liste des colonnes individuelles est déterminée par le local ciblé de l'application. La longueur d'affichage de 'Nom complet' est normalement contenue dans la conception de l'application et non dans la base de données. Il n'y a pas d'économie d'espace dans SQL Server entre varchar (32) et varchar (256). Varchar (256) est mon choix.

Je ne veux jamais être à la réunion quand quelqu'un dit « Votre conception db ne tiendra pas toutes nos données ».

Vous attribuez toujours un ID à l'utilisateur pour pouvoir joindre et effectuer des recherches en utilisant l'ID au lieu du nom complet, correct?

Questions connexes