que tienen estos campos de cadena/de texto en mi base de datos de archivo de migración:Validación de Rails ActiveRecord: ¿longitud máxima de una cadena?
t.string :author
t.string :title
t.string :summary
t.text :content
t.string :link
y estos son mis preguntas:
- Cada atributo de cadena/texto debe tener una validación de longitud máxima para ambos propósitos, la seguridad (si no desea recibir unos pocos MB de entrada de texto) y la base de datos (si string = varchar, mysql tiene un límite de 255 caracteres). ¿Es correcto o hay alguna razón para no tener una validación de longitud máxima para todos los atributos de cadena/texto en la base de datos?
- Si no me importa la longitud exacta del autor y el título tanto tiempo, ya que no son demasiado largos para ser almacenados como cadenas, ¿debo establecer una longitud máxima de 255 para cada uno de esos?
- Si la longitud máxima posible de URL es de unos 2000 caracteres, ¿es seguro almacenar enlaces como cadenas y no como textos? ¿Debería estar validando una longitud máxima del atributo de enlace si ya estoy validando su formato usando regexp?
- ¿Debe un atributo de contenido (texto) tener una longitud máxima solo para proteger la base de datos de la entrada de una longitud ilimitada? Por ejemplo, ¿es razonable establecer una longitud máxima de un campo de texto de hasta 100.000 caracteres, o esto es totalmente inútil e ineficiente?
Entiendo que estas preguntas pueden parecerle sin importancia a algunas personas, pero aún así, esa es una validación de entrada, que se requiere para cualquier aplicación, y creo que vale la pena ser un poco paranoico.