Ver Mensaje Individual
  #12 (permalink)  
Antiguo 28/04/2009, 11:56
javiersf
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: select dependiente de otro select

Bueno pues he empezado de nuevo con estas dos tablas y de momento me gustaria saber si asi esta bien puesto ahora para que se relacionen como dios manda xD.

Código:
CREATE TABLE `regiones` (
  `reg_ID` int(11) NOT NULL,
  `regRegiones` varchar(15) NOT NULL,
  PRIMARY KEY  (`reg_ID`)
) ENGINE=InnoDB; 

CREATE TABLE `ciudades` (
  `ciud_ID` int(11) NOT NULL,
  `ciudCiudades` varchar(15) NOT NULL, 
  `reg_ID` int(11) NOT NULL,
  PRIMARY KEY  (`ciud_ID`),
INDEX iCodigoF (`reg_ID`),
FOREIGN KEY (`reg_ID`) REFERENCES regiones(`reg_ID`) ON DELETE CASCADE
) ENGINE=InnoDB;

y luego como me pegue un curro bastante gordo metiendo las mas de 8.000 ciudades y no queria hacerlo mas jejeje pues decidi poner las comunidades autonomas que son 17 dentro de la tabla regiones y la de ciudades colocarle las diferentes ciudades que hay dentro de cada una.

es decir lo hice asi:

Código:
INSERT INTO `regiones` (`reg_ID`, `regRegiones`) VALUES 
(1, 'Andalucía'),
(2, 'Aragón'),
(3, 'Asturias'),
(4, 'Baleares'),
(5, 'Canarias'),
(6, 'Cantabria'),
(7, 'Castilla La Mancha'),
(8, 'Castilla y León'),
(9, 'Cataluña'),
(10, 'Extremadura'),
(11, 'Galicia'),
(12, 'La Rioja'),
(13, 'Madrid'),
(14, 'Murcia'),
(15, 'Navarra'),
(16, 'País Vasco'),
(17, 'Valencia');



INSERT INTO `ciudades` (`ciud_ID`, `ciudCiudades`, `reg_ID`) VALUES 
(1, 'Almería', '1'),
(2, 'Cádiz', '1'),
(3, 'Córdoba', '1'),
(4, 'Granada', '1'),
(5, 'Huelva', '1'),
(6, 'Jaén', '1'),
(7, 'Málaga', '1'),
(8, 'Sevilla', '1');
si te fijas en el primer INSERT INTO le pongo un numero ID a cada region y luego estoy creandole las ciudades y añadiendolas como puedes ver en el segundo INSERT INTO de forma que (1, 'Almería', '1'), el primer 1 seria el id de la ciudad,lo segundo seria el nombre de esta ciudad y en ultimo lugar iria hacia el campo reg_ID el cual la intencion es que se relacionase con la tabla de regiones y en especial con la de Andalucia que seria el ID 1 y por eso le pongo en ese ultimo campo a todos el 1.

La idea seria seguior con las siguientes del mismo modo pero como le tocaría a la region Aragón pues le corresponderian a las siguientes ciudades como ultimo campo el numero 2.

¿que tal lo ves asi? me funcionaria? ¿estan bien relacionadas ahora?

y por ultimo en la de empresas la volvi a dejar independiente a las otras como la tenía al principio

Código:
CREATE TABLE `empresas` (
`emp_ID` int(11) NOT NULL auto_increment,
`empNombre` varchar(255) NOT NULL,
`empTitulo` text NOT NULL,
`empDireccion` text NOT NULL,
`empTexto` text NOT NULL,
`empTelefono` text NOT NULL,
`empCP` text NOT NULL,
`empWeb` text NOT NULL,
`empTipo` text NOT NULL,
`empEmail` text NOT NULL,
`empDNI` int(11) NOT NULL,
`empCategoriaID` int(11) NOT NULL,
`empRegionesID` int(11) NOT NULL,
`empIdentificativoID` int(11) NOT NULL,
PRIMARY KEY  (`emp_ID`)
) TYPE=MyISAM;
ya que esta solo es para darle de alta como empresa,el registro de usuarios es otro aparte para los usuarios de la web normales.

¿crees que asi estaria bien todo compañero? haber si no me lio mas esta vez y almenos veo que voy por buen camino jejeje.


un saludo