Comunidad de diseño web y desarrollo en internet online

Problema relacionar tablas

Citar            
MensajeEscrito el 24 Oct 2008 08:57 pm
hola, miren mi problema es el siguiente. Quisiera hacer 3 tablas distintas, una para poner. Paises otra Provincias y otra Localidades. Mi problema es que quisiera relacionarlas entre si. por ejemplo: España --> Barcelona --> Mollet del Valles
no se si se puede con mysql directamente. Estoy usando NET y MySQL. Muchas Gracias

Por Kaesys

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Oct 2008 01:11 am
Aprende y estudia acerca del modelo entidad - relación. Después aprende acerca de normalización de bases de datos.

Entonces estarás listo para crear Foreign Keys en MySQL, para no hacerlo a mano puedes usar programas como Navicat o MySQL Query. Creo que phpmyadmin aun no maneja store procedures ni foreign keys.


saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 25 Oct 2008 08:18 am
Gracias Dano por tu ayuda.
Por si alguien tiene el mismo problema:
Un ejemplo sencillo que relaciona tablas padre e hijo a través de una clave foránea de una sola columna:

CREATE TABLE parent(
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE child(
id INT,
parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;

Aquí, un ejemplo más complejo, en el cual una tabla product_order tiene claves foráneas hacia otras dos tablas. Una de las claves foráneas hace referencia a un índice de dos columnas en la tabla product. La otra hace referencia a un índice de una sola columna en la tabla customer:

CREATE TABLE product (
category INT NOT NULL,
id INT NOT NULL,
price DECIMAL,
PRIMARY KEY(category, id)
) ENGINE=INNODB;

CREATE TABLE customer (
id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE product_order (
no INT NOT NULL AUTO_INCREMENT,
product_category INT NOT NULL,
product_id INT NOT NULL,
customer_id INT NOT NULL,
PRIMARY KEY(no),
INDEX (product_category, product_id),
FOREIGN KEY (product_category, product_id)
REFERENCES product(category, id)
ON UPDATE CASCADE ON DELETE RESTRICT,
INDEX (customer_id),
FOREIGN KEY (customer_id)
REFERENCES customer(id)
) ENGINE=INNODB;

Por Kaesys

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Oct 2008 05:43 pm
La solucion perfecta esta aqui!

Tabla paises:
id_pais
nombre_pais

Tabla Provincias:
id_provincia
id_pais
nombre_provincia

Tabla Localidades:
Id_localidad
id_provincia
nombre_localidad

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 25 Oct 2008 06:02 pm
Muchísimas gracias jpcw. La clavastes lo encontré hace un par de horas y lo puse ya en marcha. las ID's las hice con los códigos postales :)
Gracias de nuevo y una certera respuesta :)

Por Kaesys

11 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.