Ver Mensaje Individual
  #27 (permalink)  
Antiguo 03/12/2014, 23:47
gralf
 
Fecha de Ingreso: noviembre-2014
Mensajes: 76
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: dudas para comenzar proyecto

Cita:
Iniciado por solmedina87 Ver Mensaje
No estoy segura del error que te da phpmyadmin pero hablando sobre el modelo que pusiste, no entiendo para que la tabla RX... Con las demás entiendo que sería suficiente es decir:
Tus 3 entidades para mi están bien (lentes, esfera y cilindro).

Y se deberían relacionar en la tabla ITEM... Que también creo que la tenés bien, porque tenes los id de las otras tres entidades... Esos 3 id, en la tabla ITEM tienen que ser FOREING KEY, es decir que deben hacer referencia a sus tablas de origen (Lente, esfera y cilindro).

De nuevo, no entiendo el error que te da pero intenta sacar esa tabla RX o contame para que está? porque hasta donde entendí un lente tiene 1 esfera y 1 cilindro (mas alla de que una esfera pueda relacionarse con mas de un cilindro y vicebersa)


antes de nada, gracias por tu respuesta, pensaba que este tema quedaba estancado.

pues ahora que lo dices teniendo el cil y la esf puedo construir la Rx (graduacion) sinn necesidad de una tercera tabla.

Aún así , te cuento de donde me ha salido la tabla. tengo este diagrama



al estar relacionados n,m esfera y cilindro, no debe crearse una tabla entre las dos? pensaba que era así, pero igual el error es haber relacionado esas dos tablas.

me has abierto los ojos y claro, sería una redundancio, porque todas las combinacines de graduaciones pueden conseguirse con la esf y el cilindro ¿no?

quedaria el modelo de este modo entonces?



y con este esquema...
Código MySQL:
Ver original
  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
  4.  
  5. CREATE SCHEMA IF NOT EXISTS `stocklentes` DEFAULT CHARACTER SET utf8 ;
  6. USE `stocklentes` ;
  7.  
  8. -- -----------------------------------------------------
  9. -- Table `stocklentes`.`Index`
  10. -- -----------------------------------------------------
  11. CREATE  TABLE IF NOT EXISTS `stocklentes`.`Index` (
  12.   `id_index` INT(2) NOT NULL AUTO_INCREMENT ,
  13.   `nombre` VARCHAR(100) NOT NULL ,
  14.   `Abbe` INT(2) NOT NULL ,
  15.   `dens` VARCHAR(50) NOT NULL ,
  16.   `geom` VARCHAR(15) NOT NULL ,
  17.   `Indexcol` VARCHAR(45) NULL ,
  18.   PRIMARY KEY (`id_index`) ,
  19.   UNIQUE INDEX `nombre_UNIQUE` (`nombre` ASC) )
  20. DEFAULT CHARACTER SET = utf8;
  21.  
  22.  
  23. -- -----------------------------------------------------
  24. -- Table `stocklentes`.`esf`
  25. -- -----------------------------------------------------
  26. CREATE  TABLE IF NOT EXISTS `stocklentes`.`esf` (
  27.   `id_esf` INT(5) NULL AUTO_INCREMENT ,
  28.   `esf` DECIMAL(5,2) NULL ,
  29.   PRIMARY KEY (`id_esf`) ,
  30.   UNIQUE INDEX `esf_UNIQUE` (`esf` ASC) )
  31.  
  32.  
  33. -- -----------------------------------------------------
  34. -- Table `stocklentes`.`cil`
  35. -- -----------------------------------------------------
  36. CREATE  TABLE IF NOT EXISTS `stocklentes`.`cil` (
  37.   `id_cil` INT(5) NULL AUTO_INCREMENT ,
  38.   `cil` DECIMAL(5,2) NULL ,
  39.   PRIMARY KEY (`id_cil`) ,
  40.   UNIQUE INDEX `cil_UNIQUE` (`cil` ASC) )
  41.  
  42.  
  43. -- -----------------------------------------------------
  44. -- Table `stocklentes`.`Iem`
  45. -- -----------------------------------------------------
  46. CREATE  TABLE IF NOT EXISTS `stocklentes`.`Iem` (
  47.   `id_item` INT(5) NOT NULL AUTO_INCREMENT ,
  48.   `id_item_index` INT(5) NOT NULL ,
  49.   `id_cil` INT(5) NOT NULL ,
  50.   `id_esf` INT(5) NOT NULL ,
  51.   PRIMARY KEY (`id_item`) ,
  52.   INDEX `fk_index_rx_idx` (`id_item_index` ASC) ,
  53.   INDEX `fk_Iem_cil1_idx` (`id_cil` ASC) ,
  54.   INDEX `fk_Iem_esf1_idx` (`id_esf` ASC) ,
  55.   CONSTRAINT `fk_index_rx`
  56.     FOREIGN KEY (`id_item_index` )
  57.     REFERENCES `stocklentes`.`Index` (`id_index` )
  58.   CONSTRAINT `fk_Iem_cil1`
  59.     FOREIGN KEY (`id_cil` )
  60.     REFERENCES `stocklentes`.`cil` (`id_cil` )
  61.   CONSTRAINT `fk_Iem_esf1`
  62.     FOREIGN KEY (`id_esf` )
  63.     REFERENCES `stocklentes`.`esf` (`id_esf` )
  64.  
  65.  
  66.  
  67. SET SQL_MODE=@OLD_SQL_MODE;
  68. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  69. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Última edición por gralf; 03/12/2014 a las 23:59