os dados basicos do usuario, como login, senha, etc. tb_pagamento se encarregara de guardar um historico com todos os dados de quaisquer pagamentos que tenham sido feitos, com ou sem sucesso. tb_venda guardara as vendas finalizadas e aprovadas e se comunicara com tb_produto que tera a listagem de todos os produtos disponiveis. Cada produto tem uma ou mais categorias e vice versa, por isso temos uma tabela intermediaria para representar o relacionamento muitos-pra-muitos.Figura 5. Modelo de entidades do BDO SQL de geracao do modelo apresentado pode ser encontrado na listagem abaixo. Rode o mesmo script no seu banco MySQL.CREATE SCHEMA IF NOT EXISTS `ecommerce-teste` DEFAULT CHARACTER SET utf8 ;USE `ecommerce-teste` ;-- ------------------------------------------------------- Table `ecommerce-teste`.`tb_categoria`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `ecommerce-teste`.`tb_categoria` ( `id_categoria` INT(11) NOT NULL AUTO_INCREMENT, `descricao` VARCHAR(45) NOT NULL, PRIMARY KEY (`id_categoria`))ENGINE = InnoDBAUTO_INCREMENT = 5DEFAULT CHARACTER SET = utf8;-- ------------------------------------------------------- Table `ecommerce-teste`.`tb_produto`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `ecommerce-teste`.`tb_produto` ( `id_produto` INT(11) NOT NULL AUTO_INCREMENT, `titulo` VARCHAR(45) NOT NULL, `qtde` INT(11) NOT NULL, `valor` DOUBLE NOT NULL, `img` VARCHAR(1500) NOT NULL, `sku` TEXT NOT NULL, PRIMARY KEY (`id_produto`))ENGINE = InnoDBAUTO_INCREMENT = 5DEFAULT CHARACTER SET = utf8;-- ------------------------------------------------------- Table `ecommerce-teste`.`tb_produto_categoria`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `ecommerce-teste`.`tb_produto_categoria` ( `id_produto` INT(11) NOT NULL, `id_categoria` INT(11) NOT NULL, PRIMARY KEY (`id_produto`, `id_categoria`), INDEX `fk_tb_produto_has_tb_categoria_tb_categoria1_idx` (`id_categoria` ASC), INDEX `fk_tb_produto_has_tb_categoria_tb_produto_idx` (`id_produto` ASC), CONSTRAINT `fk_tb_produto_has_tb_categoria_tb_categoria1` FOREIGN KEY (`id_categoria`) REFERENCES `ecommerce-teste`.`tb_categoria` (`id_categoria`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_tb_produto_has_tb_categoria_tb_produto` FOREIGN KEY (`id_produto`) REFERENCES `ecommerce-teste`.`tb_produto` (`id_produto`) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDBDEFAULT CHARACTER SET = utf8;-- ------------------------------------------------------- Table `ecommerce-teste`.`tb_usuario`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `ecommerce-teste`.`tb_usuario` ( `id_usuario` INT(11) NOT NULL AUTO_INCREMENT, `login` VARCHAR(45) NOT NULL, `senha` VARCHAR(45) NOT NULL, PRIMARY KEY (`id_usuario`))ENGINE = InnoDBAUTO_INCREMENT = 6DEFAULT CHARACTER SET = utf8;-- ------------------------------------------------------- Table `ecommerce-teste`.`tb_pagamento`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `ecommerce-teste`.`tb_pagamento` ( `id_pagamento` INT NOT NULL AUTO_INCREMENT, `pagtoPaypalId` TEXT NOT NULL, `estado` VARCHAR(15) NOT NULL, `valor` DECIMAL(6,2) NOT NULL, `moeda` VARCHAR(3) NOT NULL, `idUsuario` INT(11) NOT NULL, PRIMARY KEY (`id_pagamento`), INDEX `fk_tb_pagamento_tb_usuario1_idx` (`idUsuario` ASC), CONSTRAINT `fk_tb_pagamento_tb_usuario1` FOREIGN KEY (`idUsuario`) REFERENCES `ecommerce-teste`.`tb_usuario` (`id_usuario`) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;-- ------------------------------------------------------- Table `ecommerce-teste`.`tb_venda`-- -----------------------------------------------------CREATE TABLE IF NOT EXISTS `ecommerce-teste`.`tb_venda` ( `id_venda` INT NOT NULL AUTO_INCREMENT, `estado` VARCHAR(45) NOT NULL, `preco` DECIMAL(6,2) NOT NULL, `qtde` INT(4) NOT NULL, `produtoId` INT(11) NOT NULL, `pagtoId` INT NOT NULL, PRIMARY KEY (`id_venda`), INDEX `fk_tb_venda_tb_produto1_idx` (`produtoId` ASC), INDEX `fk_tb_venda_tb_pagamento1_idx` (`pagtoId` ASC), CONSTRAINT `fk_tb_venda_tb_produto1` FOREIGN KEY (`produtoId`) REFERENCES `ecommerce-teste`.`tb_produto` (`id_produto`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_tb_venda_tb_pagamento1` FOREIGN KEY (`pagtoId`) REFERENCES `ecommerce-teste`.`tb_pagamento` (`id_pagamento`) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;As tabelas de produtos e usuarios sao as unicas que voce precisara popular diretamente na base. Voce pode preencher com seus proprios dados, ou pode utilizar a referencia abaixo:O codigo sku e um codigo usado pelo PayPal para gerenciar os produtos. Voce pode criar os seus proprios, porem no padrao mostrado.Criando o Projeto Java WebNo Eclipse, com o Tomcat ja configurado e funcional, selecione a perspectiva Java EE no canto superior direito, e va ate o menu "File > New > Dynamic Web Project".