Hola Javier
Paso a responder tus preguntas:
1. La longitud máxima para los nombres de columnas (o campos) es de 28. Ese mismo límite lo tienes para los nombres de los dominios, de las tablas, de los procedimientos almacenados, de los triggers, etc. Tengo entendido que en la siguiente versión de Firebird, la 3.0, se ampliará hasta 64 pero lo sabremos con certeza recién cuando salga la versión Alfa, muy probablemente este mismo año.
2. La cantidad de valores admisibles en los tipos de datos numéricos enteros está expresada en bytes. Por ejemplo, SMALLINT (entero pequeño) admite 2 elevado a la 16, o sea 65536, valores distintos. Como la mitad son negativos y la otra mitad son positivos los valores posibles van desde el -32768 hasta el 32767 más el 0. Para una columna autoincremental yo siempre uso BIGINT porque tengo un dominio llamado D_IDENTIFICADOR que lo engloba. En realidad podrías usar también INTEGER si lo deseas, debería funcionar.
3. CHAR ocupa un espacio fijo en el disco. VARCHAR ocupa un espacio variable, que es la cantidad de caracteres ingresados más uno. Ese uno de más corresponde al caracter CHR(0) el cual marca el final de las cadenas en el Lenguaje C. Debes definir una columna como CHAR cuando se cumpla al menos una de estas condiciones:
a. Sabes que todos o casi todos los valores tendrán una longitud fija. Por ejemplo, Número del Documento de Identidad, Abreviatura del Estado o Provincia, Estado Civil, Sexo, etc.
b. Quieres indexar la tabla según esa columna
Debes definir una columna como VARCHAR cuando:
a. Puede haber muchos espacios en blanco a la derecha del valor introducido, por ejemplo: Nombre, Apellido, Dirección, Email, Descripción, etc.
b. No indexarás la tabla por esa columna
c. La longitud será igual o menor a 32767
Debes definir una columna como BLOB SubTipo 1 (equivalente a los campos memo del Visual FoxPro) cuando:
a. La longitud será (o podría ser en algún caso) mayor que 32767 y,
b. No indexarás la tabla por esa columna
Saludos.
Walter.
"Si puedes razonar con gente religiosa, no son gente religiosa". Dr. House