Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
Se puede hacer llaves compuestas en mysql....

saludos a todos.

Estoy analizando como puedo generar el script para la base de datos en mysql, dispongo de la version 4.0.15 y tengo alguna dudas para hacer las referencias entres varias tablas, sobre todo en las tablas maestro detalle, tome un ejemplo de la pagina de mysql en donde muestran que hay que crear indices a los que van a referenciar con otras tablas pero observe que tambien usan el concepto de Restrict.

Segun lo entendido que esta en ingles es para hacer mas fuerte la referencia o que se refiere ?

Tengo mi script en interbase con varias tablas, y otras tablas maestro - detalle en donde tengo llaves compuestas, con Mysql puedo hacer lo mismo !

es decir:::
Maestro:
Mat_id Mat_fecha Mat_Total
1 12/05/05
2 12/05/05

detalle:
Det_id Det_renglon Det_articulo det_Precio
1 1 44 0.45
1 2 8 1.25
1 3 22 2.25

me podrian indicar como generar llaves compuestas en mysql, ?

gracias.
Responder Con Cita
  #2  
Antiguo 11-10-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola.

Aquí te dejo un ejemplo..

Código SQL [-]
 CREATE TABLE cliente
(
    id_cliente INT NOT NULL,
    nombre VARCHAR(30),
    PRIMARY KEY (id_cliente)
) TYPE = INNODB;

CREATE TABLE venta 
(
    id_factura INT NOT NULL,
    id_cliente INT NOT NULL,
    cantidad   INT,
    PRIMARY KEY(id_factura),
    INDEX (id_cliente),
    FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente) 
) TYPE = INNODB;

me imagino que llamas claves compuestas a lo que yo conozco como claves foraneas...
__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 11-10-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
Bueno en interbase podemos crear llaves foraneas para las tablas de Maestro - Detalle, en donde la llave primaria de la tabla maestra es un campo unico por ejemplo Fac_id Integer Not Null, y para el detalle tengo dos campos como llaves primarias ID_detalle, ID_renglon y posterior mente le asigno una llave foranea a ID_detalle:

Alter Table Detalle add contraint Ref_detalle FOREIGN KEY(Id_detalle) REFERENCES factura(Fac_id) ON UPDATE CASCADE ON DELETE CASCADE;

entonces en mysql se puede lograr esto, ya que mi campo Id_renglon es para llevar un consecutivo de los movimentos que se vayan afectando.

Es decir que ocupo estas llaves compuestas solo cuando usos tablas maestro detalle como en los casos tipicos de factura-detalle o cxc y historialCxc, etc
Pero de igual manera uso referencia a otras tablas para obtener algun dato que esta relacionado, es lo que me refiero en mysql se puede lograr ?
Gracias
Responder Con Cita
  #4  
Antiguo 11-10-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por uper
Pero de igual manera uso referencia a otras tablas para obtener algun dato que esta relacionado, es lo que me refiero en mysql se puede lograr ?
Si te refieres a relacionar tablas (eso es lo que entiendo yo sobre tú explicación), claro que se puede, como en cualquier base de dato relacional..
__________________
No todo es como parece ser...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:44:08.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi