Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Relacionar tablas

Estas en el tema de Relacionar tablas en el foro de Bases de Datos General en Foros del Web. Hola a todos! Tengo en mi web una tabla clientes, en donde guardo los datos de todos los clientes registrados en ella. Por otro lado ...
  #1 (permalink)  
Antiguo 05/05/2009, 15:02
Avatar de nolose  
Fecha de Ingreso: diciembre-2007
Ubicación: España
Mensajes: 165
Antigüedad: 16 años, 4 meses
Puntos: 2
Exclamación

Hola a todos!

Tengo en mi web una tabla clientes, en donde guardo los datos de todos los clientes registrados en ella.

Por otro lado tengo una tabla facturas, donde guardo todas las facturas.

Un cliente puede tener muchas facturas.

¿¿Sabeis cómo podria relacionar ambas tablas para que, cuando necesite imprimir una factura pueda sacar también los datos del cliente en MySQL???.

Muchas Gracias!!

Como mis ID's son autoincrement, he pensado en la tabla facturas, hacer un ID referencial, que coincida con el de clientes, para luego poder hacer algo asi como:

SELECT * FROM CLIENTES AS C, FACTURAS AS F WHERE C.id = F.clienteid


¿Que os parece?

Última edición por GatorV; 06/05/2009 a las 16:13
  #2 (permalink)  
Antiguo 05/05/2009, 15:12
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 3 meses
Puntos: 360
Respuesta: Relacionar tablas

c
Código mysql:
Ver original
  1. reate table clientes(cedula integer primary key, nombres....);
  2.  
  3. create table factura(codigo_factura integer primary key, .....,cedula_cliente, foreign key (cedula_cliente) references clientes(cedula));

De esta forma ya quedan relacionadas.
Recuerda usar tipos de tablas innodb u otra diferente de myisam para que soporte integridad referencial.

La consulta sería:

Código mysql:
Ver original
  1. select c.nombre_cliente, campos_factura from factura f
  2.  clientes c on c.cedula = f.cedula_cliente where condicion;

un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 05/05/2009, 16:24
Avatar de Adolfiten  
Fecha de Ingreso: enero-2008
Ubicación: Frente a mi monitor...
Mensajes: 572
Antigüedad: 16 años, 4 meses
Puntos: 7
Respuesta: Relacionar tablas

Pensaste bien y Huesos da un ejemplo.

Lo que tenés que hacer a nivel de base de datos es poner una clave foránea en la tabla facturas referenciando a la clave primaria de la tabla clientes.

Cuando vayas a guardar una factura, vas a tener que escribir ese campo con un valor (id supongo) que exista en la tabla clientes; luego de esto es muy fácil relacionarlos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:56.