Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2011, 17:19
eybel
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 19 años, 7 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` (
  `
id` int(11) unsigned NOT NULL auto_increment,
  `
zip_code` varchar(5) collate utf8_bin NOT NULL,
  `
city` varchar(50) collate utf8_bin default NULL,
  `
county` varchar(50) collate utf8_bin default NULL,
  `
state_name` varchar(50) collate utf8_bin default NULL,
  `
state_prefix` varchar(2) collate utf8_bin default NULL,
  `
area_code` varchar(3) collate utf8_bin default NULL,
  `
time_zone` varchar(50) collate utf8_bin default NULL,
  `
lat` float NOT NULL,
  `
lon` float NOT NULL,
  
PRIMARY KEY  (`id`),
  
KEY `zip_code` (`zip_code`)
) 
DESCRIBE ZIP_CODES:

Código PHP:
id               int(11) unsigned 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 nombre, zip_code from users, zip_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