
08/06/2012, 17:49
|
| | Fecha de Ingreso: noviembre-2008
Mensajes: 23
Antigüedad: 16 años, 4 meses 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;
|