2009-08-26 12 views
10

サイトのメンバーのツイッター名のフィールドをメンバーテーブルに追加しています。私ができる最大のtwitter名の長さは20ですので、フィールドサイズをvarchar(20)(SQL Server)に設定することが明らかです。DB内のTwitterの名前の長さ

これは良い考えですか?

Twitterでユーザー名のマルチバイト文字の使用を開始するとどうなりますか?このフィールドをnvarcharにする必要がありますか?

Twitterがユーザー名のサイズを増やすことにしたらどうなりますか?私はそれを代わりに50にして、20歳以上の名前を入力するとユーザに警告する必要がありますか?

私は防御的にコードを作成しようとしています。この入力フィールドの周囲のコードを変更したり、必要に応じてDBスキーマを変更したりする可能性を減らすことができます。

+0

20文字は必ずしも20文字に等しいとは限りませんが、特殊文字はHTMLでエンコードする必要があります。 –

答えて

22

私はTwitterのヘルプセクション(なぜAPIのドキュメントで、誰もが知っている?)で奇妙な場所の一種で次のように見られるのと同じ情報を探している間:

「ユーザー名は、最大含めることができます15文字以上の理由はありません。なぜなら、発信SMSアップデートやIMメッセージで140文字にユーザー名を追加するからです。名前が15文字を超えると、メッセージが単一のテキストメッセージで送信するには時間がかかりすぎます。

http://help.twitter.com/entries/14609-how-to-change-your-username

名で15文字の名前でと20文字の制限があり新しいアカウントもののので、おそらく1でもvarchar型を廃止(16)

1

[意見のみ]

  • TwitterはSMSと256文字のようなものがあるリミットで動作するので、名前をメッセージに当たっ避けるために小さくなければなりません。
  • すべてのtwitterテキストのためにnvarcharが良いアイデアになる
  • Twittererの本当のIDが携帯電話の場合、最長の電話番号はあなたの最大 - 20が簡単にカバーするはずです!
  • 防衛プログラミングは常に良いです:)!

[のみ/意見]今日で

+5

SMSテキストの制限は168文字です。 Hooloovoo

2

、スペースは通常は問題になりませんので、私はほとんどの一般的なアプローチを使用したい:使用NVARCHAR(200)。

DBスキーマを設計するときは、プログラミングよりも2ステップ先に考える必要があります。または、自分自身に良いスキーマ更新戦略を与えて、varchar(20)でもうまくいくでしょう。

1

あなたは防御的にコードすることができるだけです、私はtwitter APIの文書を見てそこに書かれているものに従うことをお勧めします。つまり、どこからでも、大雑把な外観から、ユーザー名の長さを指定するようです。/

2

個人的には心配しません。 200(または256のような素敵な丸い数字)のようなものを使うと、この問題は起こりません。制限はAPI上にあるので、実際のユーザー名であることを確認するのが最善の方法かもしれません。この検証には暗黙的に長さ検査が含まれます。

+4

私はこの応答が好きです。「256のような素敵な丸数字です。 – Rob

0

私はあなたのアプリケーションのTwitter名フィールドのデータエントリーを、データベース内だけで管理していると推測しています。フィールドを200文字で開くと、コードを1か所で変更するだけで済みます。また、ユーザーが20文字以上のTwitters名を入力できるようにしても、変更について心配する必要はありません。

2

Twitterは、送信用のメッセージペイロードとして140文字を入力することができ、SMSメッセージの冒頭に「[username]:」が含まれます。 SMSに基づいたメッセージングシステムと結合されたメッセージの上限は140文字で、ユーザー名を増やすには許容メッセージサイズを小さくしなければならないと思います。 20文字が最大ユーザー名の長さになるのはかなり安全だと思います。私は誰かが16ビット文字を使用している場合にのみ、nvarcharを使用したいと思います。 nvarchar(24)は動作するはずです。私はnvarchar(32)より高くはしません。

サービスのためのアプリを開発する場合は、おそらくTwitterのAPI Announcements mailing listでメッセージを見てください。

1

nvarcharを使用するフィールドでは、潜在的なユニコード文字を格納するために2バイトが必要なため、2倍のスペースが必要です。だから、twitterのステータスは、nvarcharを使って280のサイズを必要とし、140文字の制限ではないので、可能なretweetsにはもう少し追加してください。私は実際にこれを今日発見しました!例えば

RTの@chatrbyte:ここで私はretweetingてるいくつかの素晴らしいつぶやき です。

RT @chatrbyte:は140文字の制限に含まれていません。

Twitterのユーザー名に20文字の制限があり、ReTweetもキャプチャしたいと仮定すると、フルツイートを保持するフィールドは、サイズ280 +40(ユーザー名の場合)+ 8のnvarcharである必要があります(リトバート前の最初のRT @)+4(リテームユーザー名の後の+スペースの場合)= 330.

私は自分自身に少し部屋を与えるために行くと言うでしょう。それが今私が試みていることです。私が間違っているなら、私はここで更新します。

+0

私はあなたが間違っていると信じています: "** RT @chatrbyte:**" ** _ IS _ **は140文字に含まれています。リツイートは、収まるように切り捨てられます。 – drevicko

9

を得ることができ、古いアカウントの場合、この制限は未定義のようです。ドキュメントhere状態:

Earlybirdsは:ツイッターの初期ユーザーは、当社が現在を許可名以上のユーザー名よりも本当の名前を持つことができます。これは、アカウント設定の変更を保存する必要があるまでOKです。あなたのユーザー名/実名が適切な長さでない限り、変更は保存されません。これは、現代の規則を満たすために本名/ユーザー名を変更する必要があることを意味します。

あなたはおそらく長いフィールドを持ち、国境のケースに当たったときに時間を節約する方がよいでしょう。