Twitter de longueur de nom en DB
Je vais ajouter un champ à une table membre pour twitter noms pour les membres sur un site. De ce que je peux travailler le maximum de twitter longueur du nom est de 20 il semble donc évident que je devais définir la taille du champ varchar(20) (SQL Server).
Est-ce une bonne idée?
Que si Twitter commence permettant de caractères multi-octets dans les noms d'utilisateur? Dois-je faire de ce champ de type nvarchar?
Que si Twitter décide d'augmenter la taille d'un nom d'utilisateur? Devrais-je le faire au lieu de 50 et puis avertir l'utilisateur si elles entrez un nom de plus de 20?
Je suis en train de code avec précaution de sorte que je peux réduire les chances de modifier le code autour de ce champ de saisie et la DB schéma des modifications qui pourraient être nécessaires.
OriginalL'auteur Guy | 2009-08-26
Vous devez vous connecter pour publier un commentaire.
tout en regardant pour les mêmes infos que j'ai trouvé ce qui suit dans une sorte d'étrange dans le twitter de la section d'aide (pourquoi pas dans les docs de l'API? qui sait?):
"Votre nom d'utilisateur peut contenir jusqu'à 15 caractères. Pourquoi pas plus? Parce que nous ajouter votre nom d'utilisateur pour votre 140 caractères sur les SMS sortants des mises à jour et les messages instantanés. Si votre nom est de plus de 15 caractères, votre message serait trop long de les envoyer dans un message texte."
http://help.twitter.com/entries/14609-how-to-change-your-username
donc on pourrait peut-être même sortir avec varchar(16)
OriginalL'auteur jsh
Tout de nouveaux comptes a une limite de 15 caractères dans le nom d'utilisateur et 20 caractères dans le nom, pour les vieux comptes de cette limite semble être indéfini. La documentation ici états:
Alors vous êtes probablement mieux d'avoir une longue et vous épargner un peu de temps quand vous frappez la frontière des cas.
OriginalL'auteur Kit Sunde
Aujourd'hui, l'espace est généralement pas un problème, donc je ne l'utiliserais principalement approche générique: utilisation de type nvarchar(200).
Lors de la conception de DB schémas, vous devez penser à 2 pas de l'avant, encore plus que lors de la programmation. Ou procurez-vous un bon schéma de stratégie de mise à jour, alors vous serez très bien aussi avec varchar(20).
OriginalL'auteur MicSim
Personnellement, je ne m'inquiéterais pas. Utilisez quelque chose comme 200 (ou un beau chiffre rond comme 256) et vous n'aurez pas ce problème. La limite est donc sur leur API, de sorte que vous pourriez être la meilleure pour faire quelques vérifications que c'est un nom d'utilisateur réel de toute façon. Cette vérification comprend implicitement la durée de la vérification.
OriginalL'auteur Neil Barnwell
Twitter permet de 140 caractères à taper dans la charge utile du message pour la transmission, et comprend "[nom d'utilisateur]:" au début du message SMS. Avec une limite de 140 caractères pour le message combiné avec le système de messagerie d'être basés sur les SMS, je pense qu'ils auraient pour diminuer le volume admissible de taille de message d'augmenter le nom d'utilisateur. Je pense que c'est un pari assez sûr que 20 caractères serait le max nom d'utilisateur de la longueur. J'avais utilisation de type nvarchar juste au cas où quelqu'un utilise des caractères 16 bits, et peut-être pavé un peu.
nvarchar(24)
devrait fonctionner; je ne vais pas aller plus haut quenvarchar(32)
.Si vous êtes en train de développer une application pour leurs services, vous devriez probablement regarder les messages sur Twitter API liste de diffusion des Annonces.
OriginalL'auteur Jeremy S
[avis]
[/avis]
OriginalL'auteur dcpking
Il ya seulement tellement que vous pouvez code défensivement, je vous suggère de regarder le l'API twitter la documentation et à la suite de ce qui y est précisé. Cela dit, à partir d'un rapide coup d'oeil par le biais de nulle part semble pour spécifier la longueur du nom d'utilisateur, fâcheusement :/
OriginalL'auteur Rob
Une chose à garder à l'esprit qu'un champ à l'aide de type nvarchar besoins de deux fois plus d'espace, car il a besoin de 2 octets pour stocker chaque potentiel de caractères unicode. Ainsi, un statut twitter aurait besoin d'une taille de 280 à l'aide de type nvarchar, PLUS quelques plus possible pour les retweets, que ceux qui ne sont pas inclus dans les 140 char limite. J'ai découvert ce qu'aujourd'hui en fait!
Par exemple:
La RT @chatrbyte: n'est pas inclus dans la limite des 140 caractères.
Donc, en supposant qu'un nom d'utilisateur Twitter a 20 limite de caractères, et voulant aussi capturer un ReTweet, un champ de tenir un tweet complet devra être de type nvarchar de taille 280 + 40 (pour le nom d'utilisateur) + 8 (pour la première RT @ avant un retweet) +4 (pour le :+espace après un Retweet nom d'utilisateur) = 330.
Je dirais allez-nvarchar(350) pour vous donner un peu de place. C'est ce que je suis en train d'essayer dès maintenant. Si je me trompe, je vais mettre à jour ici.
OriginalL'auteur Michael A
Je devine que vous gérez la saisie des données sur le Twitter de nom de domaine dans votre application ailleurs que dans la base de données. Si vous ouvrez le champ à 200 caractères, vous n'avez qu'à changer le code en un seul endroit ou si vous autorisez les utilisateurs à entrer des Twitters noms avec plus de 20 caractères, vous n'avez pas à vous inquiéter au sujet d'un changement.
OriginalL'auteur JeffO