Foros del Web » Programando para Internet » PHP »

[Consulta] Trabajar con Claves Foraneas en PHP

Estas en el tema de [Consulta] Trabajar con Claves Foraneas en PHP en el foro de PHP en Foros del Web. Buenas tardes, vengo trabajando en un sistemita con PHP y MySQL, aprendi como crear relaciones con claves foraneas en mysql, y ahora tengo, tres elementos ...
  #1 (permalink)  
Antiguo 29/07/2009, 16:14
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 8 meses
Puntos: 5
Pregunta [Consulta] Trabajar con Claves Foraneas en PHP

Buenas tardes, vengo trabajando en un sistemita con PHP y MySQL, aprendi como crear relaciones con claves foraneas en mysql, y ahora tengo, tres elementos de mi sistema en la base de datos:

los 'usuarios', que poseen una única 'mochila', que a su vez, en esta mochila tienen ciertos 'items' con diferentes cantidades de los mismos.

Luego en PHP, tengo hechas varias paginas que me permiten cargar los datos de los items, los usuarios y demases, los carga en la base de datos, los puedo consultar, modificar, editar y ese tipo de cosas 'basicas', pero lo que no se es como insertar los datos en la tabla de "mochila", tengo una idea, pero no estoy muy seguro de como llevarla a cabo, lo que yo pensaba hacer era: desplegar un menu, donde se elija al usuario (ahi tomaria el id_usuario), luego pondria algunos menues para los items (ahi tomaria los id_item), pudiendo elegir algunos y sus cantidades; para luego pasar estos datos y hacer un 'insert' en la tabla Mochila.

Ahora bien, esta bien la idea ????? a nivel codigo creo que me las ingenio, pero me preocupa mas que nada la idea y el como 'encararlo', ademas, yo tengo muchos items, y en la pagina no me gustaria poner muchos '</select>' que ademas limitaria la cantidad de items que podria poner en una primera pasada... pero bueno, es una idea, y la verdad que quisiera algunos consejos ^^

Aqui les dejo lo que serian las tablas que tengo en mi base de datos:


Código:
CREATE SCHEMA IF NOT EXISTS `prueba` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `prueba`;

-- -----------------------------------------------------
-- Table `prueba`.`usuario`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `prueba`.`usuario` (
  `id_usuario` INT NOT NULL AUTO_INCREMENT ,
  `nombre` VARCHAR(45) NOT NULL ,
  `password` VARCHAR(45) NOT NULL ,
  PRIMARY KEY (`id_usuario`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `prueba`.`item`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `prueba`.`item` (
  `id_item` INT NOT NULL AUTO_INCREMENT ,
  `nombre` VARCHAR(45) NOT NULL ,
  `descripcion` VARCHAR(45) NULL ,
  PRIMARY KEY (`id_item`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `prueba`.`mochila`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `prueba`.`mochila` (
  `id_usuario` INT NOT NULL ,
  `id_item` INT NOT NULL ,
  `cantidad` INT NULL ,
  PRIMARY KEY (`id_usuario`, `id_item`) ,
  INDEX `fk_usuario_has_item_usuario` (`id_usuario` ASC) ,
  INDEX `fk_usuario_has_item_item` (`id_item` ASC) ,
  CONSTRAINT `fk_usuario_has_item_usuario`
    FOREIGN KEY (`id_usuario` )
    REFERENCES `prueba`.`usuario` (`id_usuario` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `fk_usuario_has_item_item`
    FOREIGN KEY (`id_item` )
    REFERENCES `prueba`.`item` (`id_item` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
  #2 (permalink)  
Antiguo 31/07/2009, 10:02
Avatar de Hiruma-Sama  
Fecha de Ingreso: agosto-2007
Ubicación: Floresta, Buenos Aires, Argentina.
Mensajes: 234
Antigüedad: 16 años, 8 meses
Puntos: 5
Respuesta: [Consulta] Trabajar con Claves Foraneas en PHP

hago un 'up' al tema, a ver si alguien me puede dar una idea ^0^
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 23:52.