Indices en tablas

Tengo 8 tablas dentro de la base de datos, y todas tiene en común el mismo campo, exactamente no se como relacionar todas las tablas es decir en que campo relacionarlas, si de una a muchos o todas contra todas, ademas no se si colocarles un indice a ese campo, ¿me podrías decir porque debe de existir un indice? Supongo para que haya un mejor orden, me imagino y sea más fácil de encontrar los datos dentro de la tabla, ¿verdad?

2 respuestas

Respuesta
1
Los índices sirven para identificar los campos por los que habitualmente buscas en las tablas. Estos informan a la base de datos que cuales son los campos que más 'trabajo' le van a dar, por lo que es aconsejable que el motor de la DB los indexe para acceder a ellos más rápidamente. Más o menos, lo que el motor hace es crearse una tabla invisible con las direcciones físicas en disco de cada registro mirando ese índice, por lo que las búsquedas son directas al acceder a una posición concreta para encontrar datos.
Otra cosa son las claves. Existen dos tipos, primarias y foráneas. Las claves primarias son el campo/campos que identifican de forma unívoca un registro. Esto significa que, por ejemplo, no puedes tener dos clientes con código 001, en cuyo caso un campo en la tabla llamado id_cliente formaría esta clave primaria (o Primary Key, en inglés). Las claves foráneas son reglas de integridad que le indican a la DB como debe comportarse para asegurar dicha integridad de datos. Ejemplo: Si tienes una tabla de pedidos, se supone que cada pedido debe estar asignado a un cliente, no puede existir un pedido sin cliente. Pues bien, lo habitual es que en la tabla de pedidos exista un campo llamado id_cliente que identifique cada pedido con un cliente. De esta manera, no puedes realizar un pedido a nombre de alguien que no este dado de alta en la tabla de clientes. Esto es una clave foránea o Foreign Key. Toda esta teoría de bases de datos relacionales se puede llevar a cabo en access mediante el menu herramientas->relaciones.
Por último, te diré que la base del rendimiento de cualquier base de datos relacional se apoya en un buen modelado de integridad referencial y datos, por lo que estos pasos previos son cruciales para obtener éxito en tu diseño.
Todo depende del modelo físico de tu base de datos. Tu me dices que tienes 8 tablas con un campo similar en todas ellas, y yo te respondo: si el valor de ese campo no puede duplicarse en ninguna tabla pues te sobran, seguramente, 7 tablas. En caso contrario (lo más probable), deberás identificar cuales campos conforman claves primarias para establecerlas en la ventana de diseño, y cuales podrían formar parte de un foreign key. Aplícate el ejemplo anterior: tabla clientes, con campo idcliente como PORQUE (campo clave). Si luego tienes algo similar a una tabla direcciones de cliente (esto es útil si un cliente tiene varias direcciones, de manera que te evites tener que declarar en la tabla de clientes los campos direc1, direc2, etc. En el caso de un cliente con tres direcciones la has CAGADO) donde uno de sus campos sea direcciones. Idcliente. Pues este campo es una foreignKey hacia la tabla clientes, y lo puedes establecer en la ventana herramientas->relaciones (como te dije antes).
Todo lo demás depende del modelo físico, y sin verlo poco más te puedo decir.
Ánimo y a por todas!
mmm que bueno, muchas gracias por tu ayuda, ¿pero esta relación entre todas las tablas podría presentarse de una con todas?
Te explico, resulta ser que tengo 8 tablas y en todas tengo un código que permite relacionarlas, pero no se como relacionar una con otra, ¿o relacionar todas con todas? ¿Cómo se hace en este caso?
Muchas Gracias, de hecho te voy a contar un poco más las 8 tablas son una que tiene:
Los valores de deciles,
Otra donde están las elasticidades ingreso
otra las elasticidades precio
otra con las bases de si es un producto exento varios escenarios
otra donde se combina y dan los resultados
otra donde tengo los códigos de artículos y el nombre
otra donde tengo un nivel de evasión.
Y otras, de echo estaba viendo que si lo que son las elasticidades precioe ingreso y el nivel de evacion pueden estar en la misma tabla. Y si los códigos son únicos, solo son 1509 y ninguno se repite
Por supuedsto todo lo que sea simplificable en menos tablas, más beneficios te dará. Has de identificar los campos clave de cada una para ver como puedes relacionarlos de manera que los campos de las tablas donde se repitan valores relacionados con otra tabla con un campo clave cuyo valor es único, les asignes propiedades de FK.
Y poco más.
Respuesta

In dordle is a fantastic game to have on hand when you're feeling depressed, exhausted, or simply need a small reminder that life is wonderful!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas