Jump to content

Ayuda al relacionar 3 tablas en MySql


MrCaseus

Recommended Posts

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 Empresa1

Nombre obra: creada: Obra1

 

Tercer formulario:

Obra 1 en Combo box

nombre 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

Hola,

Gracias por contestar,

 

Mira...

http://gicsistemas.com/Prueba/lalalala.rar

Ahi 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

Hola,

Gracias por contestar,

 

Mira...

http://gicsistemas.c...ba/lalalala.rar

Ahi 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

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 = InnoDB

AUTO_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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...