![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Hola guillotmarc,
Gracias por tu respuesta. Por cierto, ¿a partir de cuantos se considera que tiene "muchos" registros una tabla? Otra cosa. Si al final unifico las tablas, ¿como hago?, por que las tres tablas tienen con primary key un campo, "CODIGO",que es autonumérico. ¿hago que la llave primaria sea ese campo "CODIGO", más lo que haya en el campo que determina a que tabla pertenecía? y en tal caso, ¿como hago para, antes de unirlas, asignarles a esos campo un valor X para todos los registros de la misma tabla? Es más, ¿cómo las fusiono asegurandome que no pierden datos? Muchas gracias, como siempre por todo Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
#2
|
||||
|
||||
|
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). |
|
#3
|
||||
|
||||
|
Cita:
Cita:
Cita:
Código:
update tabla1 set tipo = '1'; update tabla2 set tipo = '2'; update tabla3 set tipo = '3'; Cita:
Código:
Insert into tabla4 select * from tabla1; Insert into tabla4 select * from tabla2; Insert into tabla4 select * from tabla3; /* Si no hay mensajes de error... todo estubo bien.... entonces */ commit; ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|