Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Verificar Tipo empleado en una herencia

Estas en el tema de Verificar Tipo empleado en una herencia en el foro de Mysql en Foros del Web. Me explico, digamos que tengo registrados en tabla 'empleado' 2 empleados uno con tipo de empleado 'v' y otro con 'a' Lo que quiero es ...
  #1 (permalink)  
Antiguo 08/06/2012, 17:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Verificar Tipo empleado en una herencia

Me explico, digamos que tengo registrados en tabla 'empleado' 2 empleados uno con tipo de empleado 'v' y otro con 'a'

Lo que quiero es que al registrar cada uno a su tabla subtipo respectiva haya una restricción que a la tabla 'administrador' SOLO puedan llegar desde empleado, aquellos empleados con una 'a' y a tabla 'vendedor' SOLO los que tengan 'tipo empleado' 'v'.

Aquí va el código de esa parte de la bbdd:

Código:
-- -----------------------------------------------------
-- Table `omohr4`.`administrador`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `omohr4`.`administrador` (
  `rut_a` INT(8) NOT NULL ,
  `titulo` VARCHAR(35) NOT NULL ,
  PRIMARY KEY (`rut_a`) ,
  INDEX `rut_a` (`rut_a` ASC) ,
  CONSTRAINT `rut_a`
    FOREIGN KEY (`rut_a` )
    REFERENCES `omohr4`.`empleado` (`rut_e` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `omohr4`.`empleado`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `omohr4`.`empleado` 
(
  `rut_e` INT(8) NOT NULL ,
  `nombre` VARCHAR(35) NOT NULL ,
  `apellido` VARCHAR(35) NOT NULL ,
  `calle_nro` VARCHAR(35) NOT NULL ,
  `comuna` VARCHAR(35) NOT NULL ,
  `region` VARCHAR(35) NOT NULL ,
  `fecha_contrato` DATE NOT NULL ,
  `tipo_empleado` ENUM('a','v','j') NOT NULL ,
  `rut_a_fk` INT(8) NULL ,
  
  PRIMARY KEY (`rut_e`) ,
  INDEX `rut_a_fk` (`rut_a_fk` ASC) ,
  CONSTRAINT `rut_a_fk`
    FOREIGN KEY (`rut_a_fk` )
    REFERENCES `omohr4`.`administrador` (`rut_a` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION
)
  
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `omohr4`.`vendedor`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `omohr4`.`vendedor` (
  `rut_v` INT(8) NOT NULL ,
  PRIMARY KEY (`rut_v`) ,
  INDEX `rut_v` (`rut_v` ASC) ,
  CONSTRAINT `rut_v`
    FOREIGN KEY (`rut_v` )
    REFERENCES `omohr4`.`empleado` (`rut_e` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `omohr4`.`junior`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `omohr4`.`junior` (
  `rut_j` INT(8) NOT NULL ,
  `cargo_mantencion` VARCHAR(35) NOT NULL ,
  PRIMARY KEY (`rut_j`) ,
  INDEX `rut_j` (`rut_j` ASC) ,
  CONSTRAINT `rut_j`
    FOREIGN KEY (`rut_j` )
    REFERENCES `omohr4`.`empleado` (`rut_e` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

Etiquetas: herencia, tabla, tipo, verificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:32.