У меня есть эти строки/текстовые поля в моей базы данных миграции файла:Rails Проверка ActiveRecord: максимальная длина строки?
t.string :author
t.string :title
t.string :summary
t.text :content
t.string :link
И вот мои вопросы:
- Каждый атрибут строка/текст должен иметь максимальную валидацию длины для обеих целей, безопасность (если вы не хотите получать несколько МБ ввода текста) и базы данных (если строка = varchar, у mysql ограничение 255 символов). Правильно это или нет причины не иметь проверки максимальной длины для всего атрибута строки/текста в базе данных?
- Если меня не интересуют точные длины автора и названия как долго, так как они не слишком длинны для хранения в виде строк, я должен установить максимальную длину до 255 для каждого из них?
- Если максимальная длина URL-адреса составляет около 2000 символов, безопасно ли хранить ссылки как строки, а не как тексты? Должен ли я проверять максимальную длину атрибута ссылки, если я уже проверяю его формат с помощью regexp?
- Если атрибут content (text) имеет максимальную длину только для защиты базы данных от ввода неограниченной длины? Например, устанавливает максимальную длину текстового поля в 100 000 символов, или это совершенно бессмысленно и неэффективно?
Я понимаю, что эти вопросы могут показаться неважными для некоторых людей, но все же - это проверка ввода, которая требуется для любого приложения, - и я думаю, что здесь стоит быть довольно параноидальным.