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

que pasa en estos casos? foreign key , join tables

Estas en el tema de que pasa en estos casos? foreign key , join tables en el foro de Mysql en Foros del Web. Queria saber que pasa en estos casos: Asi cree la tabla: Código PHP: CREATE TABLE  ` zip_code ` (   ` id `  int ( 11 )  unsigned NOT NULL auto_increment ...
  #1 (permalink)  
Antiguo 30/12/2011, 17:19
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
que pasa en estos casos? foreign key , join tables

Queria saber que pasa en estos casos:

Asi cree la tabla:
Código PHP:
CREATE TABLE `zip_code` (
  `
idint(11unsigned NOT NULL auto_increment,
  `
zip_codevarchar(5collate utf8_bin NOT NULL,
  `
cityvarchar(50collate utf8_bin default NULL,
  `
countyvarchar(50collate utf8_bin default NULL,
  `
state_namevarchar(50collate utf8_bin default NULL,
  `
state_prefixvarchar(2collate utf8_bin default NULL,
  `
area_codevarchar(3collate utf8_bin default NULL,
  `
time_zonevarchar(50collate utf8_bin default NULL,
  `
latfloat NOT NULL,
  `
lonfloat NOT NULL,
  
PRIMARY KEY  (`id`),
  
KEY `zip_code` (`zip_code`)

DESCRIBE ZIP_CODES:

Código PHP:
id               int(11unsigned PK
zip_code         varchar
(5)
city             varchar(50)
county           varchar(50)
state_name       varchar(50)
state_prefix     varchar(2)
area_code        varchar(3)
time_zone        varchar(50)
lat              float
lon              float 

Tengo otra tabla de usuarios que tiene un campo zip_code . Mi pregunta es para hacer este querie, como junto las tablas necesito foreign key o con algun JOIN nada mas??

Código PHP:
SELECT nombrezip_code from userszip_code where zipcode=77777 and users.zip_code zip_code.zip_code ASC LIMIT 0,20
Ahi tengo un join, pero no se si necesito crear un FOREIGN KEY del campo zip_code de la tabla "zip_code" al "zip_code" de la tabla de usuarios.

Y mi segunda duda, necesito crear un INDEX en zip_code de la tabla zip_code para que la busqueda sea mas rapida o ya esta implenetado al poner "KEY(zip_code)..." ??

Porque ese codigo al crear la tabla me pone PRIMARY KEY(id) y KEY(zip_code). Este ultimo que tipo de KEY se refiere? index?

Este codigo lo saque de otro tutorial para localizacion de usuarios por ZIPCODES pero el querie lo estoy armando yo.

gracias
  #2 (permalink)  
Antiguo 04/01/2012, 16:02
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años, 7 meses
Puntos: 15
Respuesta: que pasa en estos casos? foreign key , join tables

No necesitas crear el FOREIGN KEY para realizar esa consulta, ahora si pretendes tener que tus datos no contengan basura, es recomendable que le coloces el FOREIG KEY. Pero ten en cuenta que desde la tabla User deberias referenciar el ID de la tabla ZIP_CODE y no el valor del zip code, ya que al hacer eso estas violando una de las leyes de Normalizacion.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)

Etiquetas: casos, join, key, select, tabla, tables, foreignkey
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 09:05.