Какой размер вы используете для общих полей базы данных, например firstName, lastName, Email, password и т. Д.? Я вижу эти общие поля во многих базах данных блогов, форумов, e-commerces и т. Д. Но я не знаю, есть ли какая-либо ссылка или значение по умолчанию для размера для общих полей. Итак, я хочу знать, какой метод/reference/basis вы используете для выбора размера для общих полей.Размер по умолчанию для полей базы данных
ответ
Отчасти это зависит от вашей СУБД. Некоторые, как и MySQL 5, заботятся о длине столбца VARCHAR (n) в отличие от столбца TEXT неограниченной длины; другие, такие как PostgreSQL, рассматривают TEXT и VARCHAR (n) как внутренне идентичные, за исключением того, что длина проверяется на столбцах VARCHAR (n). Написание чего-то типа VARCHAR (65536) в PostgreSQL глупо; если вы хотите использовать столбец неограниченной длины, выберите TEXT и сделайте это.
Конечно, иногда попытка слишком долго хранить значение разбивает ваш макет или позволяет кому-то злоупотреблять системой, выбирая длинное имя без пробелов (например). Обычно то, что я делаю для таких полей имени пользователя, просто выбирает верхнюю длину, так что любой, кто хочет более длинного имени пользователя, пытается вызвать проблемы; 64 символа - приятная круглая ценность и, похоже, хорошо работает. Для настоящих имен и адресов (которые часто не отображаются пользователям, например, имя пользователя), вы захотите пойти с чем-то дольше. Вы хотите, чтобы значение было достаточно большим, чтобы оно могло принимать любой допустимый ввод, но не настолько большой, чтобы кто-то мог набивать длинную гигабайтную строку в поле, чтобы атаковать вашу систему. 1024 символов довольно разумно: 1k - это достаточно малое количество текста, с которым легко работать, круглое число и больше, чем любая нормальная адресная строка или имя.
Адреса электронной почты могут, согласно соответствующему RFC, номер которого я слишком ленив, чтобы посмотреть прямо сейчас, не должны превышать 320 символов. Таким образом, ваша длина поля электронной почты.
Оказывает, что SMTP ограничивает длину полей до 256 символов; поскольку адреса электронной почты должны быть заключены в скобки, самый длинный действительный адрес электронной почты на самом деле составляет 254 символа. (This page более подробно.) Таким образом, есть Ваша длина поля электронной почты.
Пароли должны НЕ храниться в незашифрованном виде, поэтому ваше поле пароль должен быть массив или BLOB типа точно достаточно долго, чтобы сохранить выход хэш-функции, которую вы используете (или наибольший элемент криптографического группы в использовании, для более сложных схем, таких как SRP-6a).
Только программисты считают, что 64 является «хорошим круглым значением» :) –
Знаете, я прочитал строку «nice round value» и ничего не думал об этом, пока вы не упомянули об этом. :-) –
Это для нас 3, я даже не думал, на самом деле я сказал себе: «64 - хороший круглый номер, может быть, даже 128, если вы хотите больше поля», меня и моего проклятого мышления программирования – UnkwnTech
То, что я имею в виду, - это думать о том, как долго может быть значение поля, а затем удвоить это, чтобы быть в безопасности.
E.g. Имя: VARCHAR (70) Email: VARCHAR (200)
Адрес электронной почты может содержать до 320 символов. – PartialOrder
мне нравится 16, 32, 64, 128, или 256
странно, но так близко к моему - я просто вокруг шахты - 10, 20, ... 120, 250 – IEnumerator
силы 2 делают компьютер счастливым! –
Двойные оценки. А затем удвоить их, чтобы разместить юникод.
Базы данных, в которых есть varchars (почти все), подвергаются очень маленькому штрафу за поля, которые предназначены для хранения более длинных значений, но не так. Вы можете использовать это в своих интересах.
Попробуйте подумать об этом в обратном порядке: я использовал существующие данные, чтобы получить разумные длины полей. Если у вас есть доступ к хорошему размеру базы данных, заполненных реальным данные, быстрые запросы, как:
SELECT MAX(LEN(lastname)) FROM dbo.MyDatabase
даст вам все, что вам нужно.
ОБНОВЛЕНИЕ: Не используйте точное число.Очевидно, проложите его немного в зависимости от вашей неопределенности, если у вас нет очень большой выборки.
- 1. Имеет ли значение размер полей базы данных?
- 2. Данные базы данных по умолчанию для Mongoose
- 3. Значения по умолчанию для базы данных Firebase
- 4. Delphi ошибка значение базы данных по умолчанию
- 5. SQLite VARCHAR по умолчанию размер
- 6. Переименование полей базы данных
- 7. Размер записи базы данных AES
- 8. Значения по умолчанию для полей в новой строке таблицы данных
- 9. Heroku и настройка базы данных по умолчанию
- 10. Дизайн базы данных: адрес по умолчанию
- 11. Разработчики кнопок по умолчанию для Android по умолчанию фиксированный размер
- 12. Определения полей базы данных
- 13. Изменение базы данных по умолчанию для Rails для MySQL
- 14. Рекомендации по проектированию базы данных, необходимые для пользовательских полей
- 15. Каковы значения по умолчанию для полей Django?
- 16. SystemIcons размер по умолчанию
- 17. Лучший способ показать значения по умолчанию для пустых полей, возвращаемых из запроса базы данных?
- 18. Rails по умолчанию базы данных и модели проверки для булевых полей
- 19. Размер базы данных TFS2010
- 20. Дублирование полей базы данных
- 21. Локальные данные базы данных по умолчанию
- 22. Расположение базы данных PostgreSQL по умолчанию
- 23. ошибка ошибки базы данных падение по умолчанию
- 24. Drupal: Изменение базы данных по умолчанию тип
- 25. Отключение переключателей монитора базы данных по умолчанию
- 26. Базы данных по умолчанию в PostgreSQL
- 27. Azure Поиск по умолчанию тип базы данных
- 28. Значение по умолчанию в sql-структуре базы данных
- 29. Sequelize размер пула подключения по умолчанию
- 30. Именование полей таблицы базы данных
См. Http://stackoverflow.com/questions/512614/what-are-the-recommended-database-column-sizes-for-names/ – PartialOrder