¿Por qué cada RDBMS insiste en que le diga cuál es la longitud máxima de un campo de texto? ¿Por qué no puede inferir esta información de los datos que se ingresan en la base de datos?¿Por qué tengo que establecer la longitud máxima de cada columna de texto en la base de datos?
He trabajado principalmente con MS SQL Server, pero cualquier otra base de datos que conozco también exige que establezca estos límites arbitrarios en su esquema de datos. La realidad es que esto no es particularmente útil o amigable para trabajar, ya que los requisitos del negocio cambian todo el tiempo y casi todos los días algunos usuarios finales intentan poner mucho texto en esa columna.
¿Alguien con un poco de conocimiento interno de un RDBMS sabe por qué no deducimos los límites de los datos que se guardan en el almacenamiento? No estoy hablando de adivinar la información del tipo, sino de adivinar los límites de una columna de texto en particular.
Es decir, hay una razón por la que no uso nvarchar (max) en cada columna de texto en la base de datos.
tengo ningún "conocimiento práctico interior de un RDBMS" , pero no entiendo por qué piensas que esto es un problema. Hay tipos de datos independientes como CLOB. Si eso es lo que quieres, entonces úsalo. Si necesita hacer comparaciones de texto más fáciles, entonces tiene que sufrir el dolor de escribir (255) o lo que sea. No parece que valga la pena quejarse por mí. Pero eso es solo mi granito de arena. – MJB
Vale la pena señalar que SQLite no impone este requisito. – cikkle
Es lógicamente imposible inferir una longitud máxima de los datos realmente dados. ¿Cuánto tiempo debe esperar la base de datos hasta que decida, "OK, supongo que nunca habrá más de 255 caracteres aquí"? –