Comunidad de diseño web y desarrollo en internet online

Problema con clave foreana en una BD

Citar            
MensajeEscrito el 07 Ago 2009 09:58 pm
Bueno,
Tengo un problema al crear mi base de datos que eh modelado de la siguiente manera:



pasa que cuando lo traspaso a codigo SQL al momento de correrlo en mi Mysql front me tira un error en la creacion de la tabla comentarios.

Me explico este pequeño sistema es de unos agentes de corredores.
En la tabla agentes detallo un poc de su perfil..
En la tabla Empresa la empresa de corredor a la cual esta afiliada
en la tabla Ciudad la ciudad o departamento en el cual trabaja
en la tabla comentarios, los comentarios que recibe..

mi codigo de la base de datos es este:

Código MySQL :

CREATE SCHEMA IF NOT EXISTS `agentes` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `agentes`;

-- -----------------------------------------------------
-- Table `agentes`.`ciudad`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `agentes`.`ciudad` (
  `id_ciudad` INT NOT NULL AUTO_INCREMENT ,
  `nom_ciudad` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`id_ciudad`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `agentes`.`agente`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `agentes`.`agente` (
  `id_agente` INT NOT NULL AUTO_INCREMENT ,
  `id_ciudad` INT NOT NULL ,
  `nom_agente` VARCHAR(45) NOT NULL ,
  `dni_agente` INT(8) NOT NULL ,
  `direc_agente` VARCHAR(60) NOT NULL ,
  `telf_fijo` INT(7) NOT NULL ,
  `telf_cel` INT(9) NOT NULL ,
  `ciu_agente` VARCHAR(30) NOT NULL ,
  `ruc_agente` INT(11) NOT NULL ,
  `foto_agente` VARCHAR(45) NOT NULL ,
  `cargo_agente` VARCHAR(45) NULL ,
  `estado_licencia` INT(1) NOT NULL DEFAULT 0 ,
  PRIMARY KEY (`id_agente`, `id_ciudad`) ,
  INDEX `id_ciudad` (`id_ciudad` ASC) ,
  CONSTRAINT `id_ciudad`
    FOREIGN KEY (`id_ciudad` )
    REFERENCES `agentes`.`ciudad` (`id_ciudad` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `agentes`.`empresa`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `agentes`.`empresa` (
  `id_empresa` INT NOT NULL AUTO_INCREMENT ,
  `id_agente` INT NOT NULL ,
  `nom_emp` VARCHAR(45) NOT NULL ,
  `direc_emp` VARCHAR(60) NOT NULL ,
  `telf_emp` VARCHAR(9) NOT NULL ,
  `web_url` VARCHAR(50) NULL ,
  `correo_emp` VARCHAR(60) NOT NULL ,
  `nro_ruc` VARCHAR(11) NOT NULL ,
  PRIMARY KEY (`id_empresa`, `id_agente`) ,
  INDEX `id_agente` (`id_agente` ASC) ,
  CONSTRAINT `id_agente`
    FOREIGN KEY (`id_agente` )
    REFERENCES `agentes`.`agente` (`id_agente` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `agentes`.`comentarios`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `agentes`.`comentarios` (
  `id_comentarios` INT NOT NULL AUTO_INCREMENT ,
  `id_agente` INT NOT NULL ,
  `desc_comentario` VARCHAR(600) NOT NULL ,
  `estado` INT(1) NOT NULL DEFAULT 0 ,
  PRIMARY KEY (`id_comentarios`, `id_agente`) ,
  INDEX `id_agente` (`id_agente` ASC) ,
  CONSTRAINT `id_agente`
    FOREIGN KEY (`id_agente` )
    REFERENCES `agentes`.`agente` (`id_agente` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;


Alguien que me pueda guiar con esta creacion de tablas.. para empezarlo a programar.? :?

Por BlackMage

37 de clabLevel



 

safari
Citar            
MensajeEscrito el 08 Ago 2009 03:45 am
¿Cuál es el mensaje de error?

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 08 Ago 2009 03:53 pm
creo que el problema esta en el varchar (600) usa mejor TEXT...
;)

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox

 

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