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

Como Rayos se relaciona tablas en MYSQL

Estas en el tema de Como Rayos se relaciona tablas en MYSQL en el foro de Bases de Datos General en Foros del Web. Hola a todos No encuentro respuesta a esta pregunta: Como Rayos se relacionan tablas en MYSQL o esta pregunta Como diablos se relacionan tablas en ...
  #1 (permalink)  
Antiguo 08/04/2005, 18:44
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Como Rayos se relaciona tablas en MYSQL

Hola a todos

No encuentro respuesta a esta pregunta:

Como Rayos se relacionan tablas en MYSQL

o esta pregunta

Como diablos se relacionan tablas en MYSQL

o esta

Como mier... se relacionan tablas en MYSQL


o esta mejor

¿Como se relacionan tablas en MYSQL?


Aguien me puede ayudar?


  #2 (permalink)  
Antiguo 08/04/2005, 18:56
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
je je, bueno en realidad Mysql fue diseñado para que su integridad referencial fuese diseñado en un front-end, es decir por una aplicacion... sin embargo si utilizas tablas de tipo innodb, puedes crear una integridad referencial bien hecha

Aqui la documentacion
http://dev.mysql.com/doc/mysql/en/an...eign-keys.html


Chaop!
  #3 (permalink)  
Antiguo 08/04/2005, 19:46
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
chevere ahora lo veo
  #4 (permalink)  
Antiguo 08/04/2005, 19:56
 
Fecha de Ingreso: abril-2005
Mensajes: 15
Antigüedad: 19 años
Puntos: 0
Necesito saber como las quieres relacionar no es muy dificil si tienes conocimientos de pl/sql o sql
para relacionar 2 tablas necesitas saber que campos vas a relacionar porque de eso depende la relacion porque hay tablas que no se pueden relacionar si no tienen por lo menos un campo en comun o sea pariedad pero si los tiene adelante te puedo dar un scrip que lo puedes ejecutar que se que te va ayudar mucho

SELECT last_name "NOMBRE DEL EMPLEADO", location_id "LOCAL", salary "SUELDO MIERDA", department_name "DEPARTAMENTO"
FROM employees, departments

1 tabla employees es la 1era tabla 1 tabla departments es segunda tabla.
Tienes que SELECT a los campos de las tablas sepados por una coma y luego le das FROM y le dices de que tablas vas a traer eso campos

Última edición por Cristian777; 08/04/2005 a las 20:01
  #5 (permalink)  
Antiguo 08/04/2005, 21:19
Avatar de JBalde  
Fecha de Ingreso: febrero-2005
Ubicación: Madrid
Mensajes: 118
Antigüedad: 19 años, 2 meses
Puntos: 5
Cristian777, perdona mi pregunta, pero o soy un ignorante o creo que te confundes. Este problema trata de MySQL y como han dicho por ahi, MySQL fue diseñado para que no incorporase muchas funciones para asi ser el SGBD mas veloz. Entre estas funciones de las cuales carece es de un lenguaje propio de programacion para la base de datos. Por ello te digo que no puedes pedir a una persona que esta empezando que aprenda PL/SQL, puesto que es un lenguaje de programacion, que si no me equivoco es de Oracle solamente, asi que sentido tiene que una persona aprenda PL/SQL si no sabe usar SQL y quizas nunca toque Oracle, puesto que este SGBD solo lo usan los grandes programadores y aparte, si ya que lo pones, pon tambien T-SQL por nuestros amigos de Redmon. Como te he dicho, perdona por decirte esto, pero es por aclarar cosas, si me equivoco me lo dices. Por ultimo decirte tambien que PL/SQL no sirve o al menos creo para relacionar tablas, es un lenguaje para procedimientos almacenados propio de Oracle y son funciones o pequeños programas residentes en el propio SGBD.

Última edición por JBalde; 08/04/2005 a las 21:22
  #6 (permalink)  
Antiguo 09/04/2005, 11:04
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 3 meses
Puntos: 11
Mensaje :(

Hola, si se SQL... pero en MySQl no se puede usar foringkey(asi creo que se escribe)... bueno pero no me sale...

Quiero relacionar dos o mas tablas ...
primero quiero esto.

tabla facultades (idfac, nombrefac)
tabla carreras (idcar, nombrecar)
tabla cursos (idcur, nombrecur)


una facultad tienes muchas carreras y una carrera tiene muchos cursos.

Como se haria eso eso?


y si consideramos que un curso esta en diferentes carreras? es de muchos a muchos



ha y otra pregunta
como puedo pasar de ERWIN a MYSQL, quisas ahi esta la solucion... si erwin me pasa a codigo SQL , tons debe ver algun parche que me permita psar a codigo mysql.


gracias
  #7 (permalink)  
Antiguo 09/04/2005, 11:19
Avatar de jrp01  
Fecha de Ingreso: mayo-2004
Ubicación: México
Mensajes: 2.702
Antigüedad: 20 años
Puntos: 0
Bueno para relacionar si las vas a crear seria asi:
Código:
Create empleado(
idempleado smallint not null,
nombre varchar(60),
constraint pk_emp primary key(idempleado)
)

Create table depto(
iddepto smallint not null,
idempleado smallint not null,
descripcion varchar(60),
constraint pk_depto primary key(iddepto),
constraint fk_empleado foreign key(idempleado) references empleado(idempleado)
)
Si ya existen las tablas Lee lo referente a Alter Table
http://www.dbmaker.com.tw/reference/...ertablepk.html
http://sunsite.mff.cuni.cz/MIRRORS/f...TER_TABLE.html

Si hay relaciones de muchos a muchos crea una tabla para romper la relacion

Por ejem. si es una factura
La factura puede tener muchos productos y un producto puede estar en varias facturas, creo la tabla de detalle y le mando las llaves primarias del producto y la factura y con esas hago una llave primari, y mando precio del prod, fecha ¿por que? por que si los precios cambian yo tengo la fecha y en cuanto lo vendi en detalle.
  #8 (permalink)  
Antiguo 10/04/2005, 19:33
Avatar de JBalde  
Fecha de Ingreso: febrero-2005
Ubicación: Madrid
Mensajes: 118
Antigüedad: 19 años, 2 meses
Puntos: 5
Te ha faltado una cosa jrp01 por poner, es un pequeño detalle, pero las tablas de MySQL estandar no se pueden relacionar, para relacionar usando claves foraneas se ha de usar tablas de tipo INNODB, para ello has de indicar al final de la creacion de la tabla

create table .........)type=INNODB;

Con esto si te dejara relacionarlas.
  #9 (permalink)  
Antiguo 10/04/2005, 21:27
 
Fecha de Ingreso: julio-2003
Ubicación: Colombia
Mensajes: 591
Antigüedad: 20 años, 9 meses
Puntos: 7
La forma correcta de crear una estructura referencial en Mysql es esta...


Código PHP:
CREATE TABLE parent(id INT NOT NULL,
                    
PRIMARY KEY (id)
TYPE=INNODB;

CREATE TABLE child(id INTparent_id INT,
                   
INDEX par_ind (parent_id),
                   
FOREIGN KEY (parent_idREFERENCES parent(id)
                     
ON DELETE CASCADE
TYPE=INNODB

mientras que este tipo de definiciones es para M$SQL

Código PHP:
constraint pk_depto primary key(iddepto

Chaop!
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 14:21.