Длина имени Twitter в DB

Я просто нашел способ сделать, это в ReignDesign blog в статье назвало Используя Вашу собственную базу данных SQLite в приложениях Android . В основном Вы предварительно создаете свою базу данных, помещаете ее в Ваш каталог активов в Вашем apk, и на первом использовании копируют в /data/data/YOUR_PACKAGE/databases/ каталог.

10
задан Guy 26 August 2009 в 15:37
поделиться

8 ответов

, ища ту же информацию, я обнаружил следующее в каком-то странном месте в разделе справки твиттера (почему не в документации API? Кто знает?):

"Ваш пользователь имя может содержать до 15 символов. Почему не больше? Потому что мы добавляем ваше имя пользователя к вашим 140 символам в исходящих SMS-сообщениях и IM-сообщениях. Если ваше имя длиннее 15 символов, ваше сообщение будет слишком длинным для отправки в одном текстовое сообщение. "

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

так что, возможно, можно было бы даже обойтись с помощью varchar (16)

22
ответ дан 3 December 2019 в 13:51
поделиться

В настоящее время пространство обычно не является проблемой, поэтому я бы использовал в основном общий подход: используйте nvarchar (200).

При разработке схем БД вы должны думать на два шага вперед, даже больше, чем при программировании. Или придумайте себе хорошую стратегию обновления схемы, тогда вам тоже подойдет varchar (20).

2
ответ дан 3 December 2019 в 13:51
поделиться

Лично я бы не стал беспокоиться. Используйте что-то вроде 200 (или красивое круглое число, например 256), и у вас не будет этой проблемы. Таким образом, ограничение накладывается на их API, поэтому вам может быть лучше проверить, что это настоящее имя пользователя. Эта проверка неявно включает в себя проверку длины.

2
ответ дан 3 December 2019 в 13:51
поделиться

Twitter allows for 140 characters to be typed in as the message payload for transmission, and includes "[username]:" at the beginning of the SMS message. With an upper limit of 140 characters for the message combined with the messaging system being based on SMS, I think they would have to decrease the allowable message size to increase the username. I think it is a pretty safe bet that 20 characters would be the max username length. I'd use nvarchar just in case someone uses 16-bit characters, and maybe pad it a little. nvarchar(24) should work; I wouldn't go any higher than nvarchar(32).

If you're going to develop an app for their service, you should probably watch the messages on Twitter's API Announcements mailing list.

2
ответ дан 3 December 2019 в 13:51
поделиться

[только мнение]

  • Твиттер работает с SMS, и ограничение составляет примерно 256 символов, поэтому имя должно быть маленьким, чтобы не попасть в сообщение.
  • nvarchar будет хорошей идеей для всего твиттер-текста.
  • Если настоящий идентификатор твиттера - мобильный телефон, то самый длинный номер телефона - это ваш максимум - 20 должно легко покрыть его!
  • Защитное программирование - всегда хороший :) !

[/ только мнение]

1
ответ дан 3 December 2019 в 13:51
поделиться

Существует так много всего, что вы можете кодировать для защиты, я бы посоветовал посмотреть документацию twitter API и следовать всему, что там указано. Тем не менее, при беглом просмотре кажется, что нигде не указывается длина имени пользователя, что раздражает: /

1
ответ дан 3 December 2019 в 13:51
поделиться

Я предполагаю, что вы управляете вводом данных в поле имени Twitter в своем приложении где-то еще, а не только в базе данных. Если вы откроете поле до 200 символов, вам нужно будет изменить код только в одном месте или если вы разрешите пользователям вводить имена Twitters, содержащие более 20 символов, вам вообще не нужно беспокоиться об изменении.

0
ответ дан 3 December 2019 в 13:51
поделиться

Здесь следует иметь в виду, что поле, использующее nvarchar, требует вдвое больше места, так как ему требуется 2 байта для хранения каждого потенциального символа Юникода. Итак, для статуса твиттера потребуется размер 280 с использованием nvarchar, ПЛЮС еще несколько для возможных ретвитов, поскольку они не включены в ограничение в 140 символов. Я обнаружил это буквально сегодня!

Например:

RT @chatrbyte: вот отличный твит , который я ретвитну.

RT @chatrbyte: не входит в ограничение в 140 символов.

Итак, если предположить, что имя пользователя Twitter имеет ограничение в 20 символов, и если вы хотите также захватить ретвит, поле для хранения полного твита должно быть nvarchar размером 280 + 40 (для имени пользователя) + 8 ( для начального RT @ перед ретвитом) +4 (для: + пробела после имени пользователя ретвита) = 330.

Я бы сказал, выберите nvarchar (350), чтобы дать себе немного места. Вот что я сейчас пытаюсь. Если ошибаюсь, обновлю здесь.

1
ответ дан 3 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: