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

Duda con Tablas relacionadas y SQL Queries.

Estas en el tema de Duda con Tablas relacionadas y SQL Queries. en el foro de Mysql en Foros del Web. Tengo una duda con las queries, basicamente una duda conceptual. Cual es la diferencia de tener dos tablas relacionadas, a tener dos tablas sin relacionar ...
  #1 (permalink)  
Antiguo 09/07/2011, 23:25
 
Fecha de Ingreso: marzo-2011
Mensajes: 13
Antigüedad: 13 años, 1 mes
Puntos: 1
Duda con Tablas relacionadas y SQL Queries.

Tengo una duda con las queries, basicamente una duda conceptual.

Cual es la diferencia de tener dos tablas relacionadas, a tener dos tablas sin relacionar mediante una FOREIGN KEY?

En otras palabras, con el siguiente Query, puedo obtener la información de un producto en especifico posteado por un usuario en especifico sin necesidad de tener Foreign Keys

SELECT posts.id_post, posts.id_user, posts.title,posts.description,users.id_user,users. email,users.username
FROM users,posts
WHERE posts.id_post = 1 AND posts.id_user = users.id_user
LIMIT 0,1

Entonces mi pregunta es, de que manera puedo hacer un Query que tome ventaja de las foreign keys, por ejemplo.
Si mi tabla de posts, el campo id_user, esta relacionado con el campo id_user en la tabla users.
  #2 (permalink)  
Antiguo 10/07/2011, 01:09
Avatar de Joefay  
Fecha de Ingreso: noviembre-2010
Mensajes: 12
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Duda con Tablas relacionadas y SQL Queries.

Cita:
Cual es la diferencia de tener dos tablas relacionadas, a tener dos tablas sin relacionar mediante una FOREIGN KEY?
Los forenign key sirven para mantener la integridad referencial de la informacion de las tablas, es decir que la informacion que tengas en una tabla no caresca de sentido y que este complementada con informacion de otras tablas ej.

tabla usuarios:
id_usuario | nombre
1 | juan
2 | maria
3 | pedro

tabla compras:
id_compra | id_usuario
1 | 2
2 | 2
3 | 1
4 | 3
5 | 2

en este ejemplo la tabla usuarios tiene una clave foranea o Foreing Key en la tabla compras, la clave foranea servira para que en la tabla compras no este el id de un usuario que no existe ya que el sql no te permitira insertar el registro, solo te permitira aquellos que esten en la tabla usuarios, ademas el foreing key te ayudara a que no elimines registros de la tabla usuarios cuyos id_usuario esten en la tabla compras, para eliminarlos primero tendras que quitarlos de la tabla compras y luego de usuarios.



Cita:
Entonces mi pregunta es, de que manera puedo hacer un Query que tome ventaja de las foreign keys, por ejemplo.
Si mi tabla de posts, el campo id_user, esta relacionado con el campo id_user en la tabla users.
si tienes o no foreing keys la consulta se ejecutara de igual forma, la ventaja la puedes obtener si tienes claves e indices asignados en los campos clave.

Etiquetas: query, relacionadas, select, sql, tabla, tablas
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:54.