Ver Mensaje Individual
  #4  
Antiguo 14-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola Virginia.

No creo que haya un tope en el tamaño de las tablas. Si tienes los índices adecuados, podrás acceder con un rendimiento correcto, indistintamente al numero de registros. Los problemas creo que aparecerán antes, por tamaño del archivo de datos. Es decir que puedes empezar a tener problemas cuando la base de datos llegue a los 4 Gb. (tamaño máximo de los archivos en algunos sistemas operativos, y en algunas versiones de Interbase/Firebird).

Repito que lo importante es tener los índices adecuados, lo que quiere decir que en una tabla grande, probablemente deberás definir índices compuestos (de más de un campo).

Ejplo. Un consulta tipo select nombre from clientes where tipo = 3 and poblacion = 'Girona', obtendrá un rendimiento sensiblemente mejor si tienes un índice compuesto por Tipo y Población, que si tienes dos índices simples, uno para el campo Tipo y otro para Población.

Puedes definir perfectamente, como has comentado, la clave primaria como compuesta. Formada por los campos Codigo y Tipo. Aunque tén en cuenta que cualquier tabla relacionada con esta, debe mantener la relación con los correspondientes campos Codigo y Tipo. Si la tabla relacionada solo tiene un campo Codigo, no podremos saber a cuales de los registros de la tabla principal se refiere.

Para fusionar las tablas, puedes modificar primero las originales, y añadirles el campo Tipo, entonces asignas el valor de tipo en cada registro. Una vez actualizadas todas las tablas ya podriamos fusionarlas en una de nueva.

alter table TABLA_1 add TIPO integer;

update TABLA_1 set TIPO = 1;

alter table TABLA_2 add TIPO integer;

update TABLA_2 set TIPO = 2;

alter table TABLA_3 add TIPO integer;

update TABLA_3 set TIPO = 3;

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita