MrCaseus Posted November 28, 2012 Report Share Posted November 28, 2012 Hola chicos, Espero alguien me pueda ayudar a relacionar 3 tablas en MySql, solo logro relacionar 2 Lo que necesito es relacionar de tal manera de lograr: Crear una Empresa, esa Empresa tiene varias Obras y cada una de esas Obras tiene varias actividades Primer formulario:Crear empresa Empresa creada: Empresa1 Segundo formulario: Un combo box con una la Empresa1Nombre obra: creada: Obra1 Tercer formulario:Obra 1 en Combo boxnombre actividad actividad 1 La actividad 1 corresponde a la obra 1 relacionada tambien con Empresa1 Ojala alguien me logre entender y ayudar,Si tienen alguna otra manera de relacionar me serviría tambien, gracias! Link to comment Share on other sites More sharing options...
cañangasñangas Posted November 28, 2012 Report Share Posted November 28, 2012 (edited) ve con algo asi: actividades puede estar enlazada solo por "id.obras" pero para mayor confort enlace tambien "id.empresa" Edited November 28, 2012 by cañangasñangas Link to comment Share on other sites More sharing options...
MrCaseus Posted November 28, 2012 Author Report Share Posted November 28, 2012 Hola,Gracias por contestar, Mira...http://gicsistemas.com/Prueba/lalalala.rarAhi esta la BD, tu podrias ayudarme a relacionarla? Lo que pasa que me causa mucha logica lo que me indicas en la foto arriba,Pero no se cual deberia ir Primary Key o FK o Unique o Auto Incremental, esto tengo que realizarlo a trave de formularios en php Ojala me podai ayudar Gracias!!! Link to comment Share on other sites More sharing options...
cañangasñangas Posted November 28, 2012 Report Share Posted November 28, 2012 Hola,Gracias por contestar, Mira...http://gicsistemas.c...ba/lalalala.rarAhi esta la BD, tu podrias ayudarme a relacionarla? Lo que pasa que me causa mucha logica lo que me indicas en la foto arriba,Pero no se cual deberia ir Primary Key o FK o Unique o Auto Incremental, esto tengo que realizarlo a trave de formularios en php Ojala me podai ayudar Gracias!!! los id, de cada tabka son AI - INDEX Link to comment Share on other sites More sharing options...
xomarx69 Posted November 28, 2012 Report Share Posted November 28, 2012 te sirve esto?: SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; -- ------------------------------------------------------- Table `empresas`-- -----------------------------------------------------DROP TABLE IF EXISTS `empresas` ; CREATE TABLE IF NOT EXISTS `empresas` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `nombre_empresas` VARCHAR(33) NOT NULL , UNIQUE INDEX `id` (`id` ASC) , PRIMARY KEY (`id`) )ENGINE = InnoDBAUTO_INCREMENT = 2; -- ------------------------------------------------------- Table `obras`-- -----------------------------------------------------DROP TABLE IF EXISTS `obras` ; CREATE TABLE IF NOT EXISTS `obras` ( `id` INT(11) NOT NULL , `nombre_obra` VARCHAR(33) NOT NULL , `empresas_id` INT(11) NOT NULL , PRIMARY KEY (`id`, `empresas_id`) , INDEX `id` (`id` ASC) , INDEX `fk_obras_empresas` (`empresas_id` ASC) , CONSTRAINT `fk_obras_empresas` FOREIGN KEY (`empresas_id` ) REFERENCES `empresas` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB; -- ------------------------------------------------------- Table `actividades`-- -----------------------------------------------------DROP TABLE IF EXISTS `actividades` ; CREATE TABLE IF NOT EXISTS `actividades` ( `id` INT(11) NOT NULL AUTO_INCREMENT , `nombre_actividad` VARCHAR(33) NOT NULL , `obras_id` INT(11) NOT NULL , `obras_empresas_id` INT(11) NOT NULL , UNIQUE INDEX `id` (`id` ASC) , PRIMARY KEY (`id`, `obras_id`, `obras_empresas_id`) , INDEX `fk_actividades_obras1` (`obras_id` ASC, `obras_empresas_id` ASC) , CONSTRAINT `fk_actividades_obras1` FOREIGN KEY (`obras_id` , `obras_empresas_id` ) REFERENCES `obras` (`id` , `empresas_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB; SET SQL_MODE=@OLD_SQL_MODE;SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS; Link to comment Share on other sites More sharing options...
AshWilliams Posted November 28, 2012 Report Share Posted November 28, 2012 Excelente script amigo xomarx ;) A simple vista se adapta perfecto a lo que quiere el user......gracias por aportar continuamente al foro cumpa ;) Link to comment Share on other sites More sharing options...
xomarx69 Posted November 28, 2012 Report Share Posted November 28, 2012 De nada!, te recomiendo usar el MySql Workbench para el diseño de tu modelo. Saludos Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now