Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Evilkenzera

Onde estou errando neste relacionamento de tabelas??

Recommended Posts

Pessoal, estou com um problema.Eu gostaria de fazer relacionamento entre tabelas, más estou apanhando muito.Já li alguns post´s aqui no fórum, más ta dando erro.Eu fiz o seguinte:Tabela: CATEGORIA com o campo COD_CATEGORIATabela: SUBCATEGORIA com o campo COD_SUBCATEGORIADepois tenho tabela PRODUTO com os camposCOD_PRODUTOCOD_CATEGORIACOD_SUBCATEGORIANão consigo relacionar COD_CATEGORIA e COD_SUBCATEGORIA da tabela PRODUTO com os mesmos campos das tabelas (CATEGORIA E SUBCATEGORIA) Não sei onde estou errando.Alguém ae pode me dar uma mãozinha?Valeu!Segue abaixo o script do banco:# Host : localhost# Port : 3306# Database : comerciobdSET FOREIGN_KEY_CHECKS=0;CREATE DATABASE `comerciobd`;USE `comerciobd`;## Structure for the `categoria` table : #CREATE TABLE `categoria` ( `COD_CATEGORIA` int(10) NOT NULL auto_increment, `CATEGORIA` varchar(100) default NULL, `URL_IMAGEM_TOP` varchar(250) default NULL, `URL` varchar(250) default NULL, PRIMARY KEY (`COD_CATEGORIA`),) TYPE=InnoDB;## Structure for the `subcategoria` table :#CREATE TABLE `subcategoria` ( `COD_SUBCATEGORIA` int(10) NOT NULL auto_increment, `COD_CATEGORIA` int(10) default NULL, `SUBCATEGORIA` varchar(100) default NULL, `URL_IMAGEM_SUBCATEGORIA` varchar(250) default NULL, PRIMARY KEY (`COD_SUBCATEGORIA`)) TYPE=InnoDB;## Structure for the `produto` table :#CREATE TABLE `produto` ( `COD_PRODUTO` int(10) NOT NULL auto_increment, `PRODUTO` varchar(100) default NULL, `DESCRICAO` varchar(250) default NULL, `COD_SUBCATEGORIA` int(10) default NULL, `VLR_UNITARIO` double(15,2) default NULL, `URL_IMAGEM` varchar(250) default NULL, `QTD_ESTOQUE` int(10) default NULL, `PROMO` char(1) default NULL, `PAGE` char(1) default NULL, `CATEGORIA_ID` INT(10) not NULL, `SUBCATEGORIA_ID` INT(10) not NULL, `COD_CATEGORIA` int(10) default NULL, PRIMARY KEY(`CATEGORIA_ID`, `SUBCATEGORIA_ID`), INDEX i2 (`CATEGORIA_ID`, `SUBCATEGORIA_ID`), FOREIGN KEY (`CATEGORIA_ID`) REFERENCES CATEGORIA(`COD_CATEGORIA`) ON DELETE CASCADE, FOREIGN KEY (`SUBCATEGORIA_ID`) REFERENCES SUBCATEGORIA(`COD_SUBCATEGORIA`) ON DELETE RESTRICT) TYPE=InnoDB;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu andei pesquisando por aí, e coloquei isto no código do banco.Só queria saber se ficou certo?--------------------------------------------------------------# Host : localhost# Port : 3306# Database : testeSET FOREIGN_KEY_CHECKS=0;CREATE DATABASE `teste`;USE `teste`;## Structure for the `categoria` table : #CREATE TABLE `categoria` ( `COD_CATEGORIA` int(10) NOT NULL auto_increment, `CATEGORIA` varchar(100) default NULL, `URL_IMAGEM_TOP` varchar(250) default NULL, `URL` varchar(250) default NULL, PRIMARY KEY (`COD_CATEGORIA`)) TYPE=InnoDB;## Structure for the `subcategoria` table : #CREATE TABLE `subcategoria` ( `COD_SUBCATEGORIA` int(10) NOT NULL auto_increment, `COD_CATEGORIA` int(10) default NULL, `SUBCATEGORIA` varchar(100) default NULL, `URL_IMAGEM_SUBCATEGORIA` varchar(250) default NULL, PRIMARY KEY (`COD_SUBCATEGORIA`), KEY `SUBCATEGORIA` (`SUBCATEGORIA`)) TYPE=InnoDB;## Structure for the `produto` table : #CREATE TABLE `produto` ( `COD_PRODUTO` int(10) NOT NULL auto_increment, `PRODUTO` varchar(100) default NULL, `COD_CATEGORIA` int(10) default NULL, `COD_SUBCATEGORIA` int(5) default NULL, `DESCRICAO` varchar(250) default NULL, `VLR_UNITARIO` double(15,2) default NULL, `URL_IMAGEM` varchar(250) default NULL, `QTD_ESTOQUE` int(10) default NULL, `PROMO` char(1) default NULL, `PAGE` char(1) default NULL, PRIMARY KEY (`COD_PRODUTO`), KEY `COD_CATEGORIA` (`COD_CATEGORIA`), KEY `COD_SUBCATEGORIA` (`COD_SUBCATEGORIA`), CONSTRAINT `produto_ibfk_2` FOREIGN KEY (`COD_SUBCATEGORIA`) REFERENCES `subcategoria` (`COD_SUBCATEGORIA`), CONSTRAINT `produto_ibfk_1` FOREIGN KEY (`COD_CATEGORIA`) REFERENCES `categoria` (`COD_CATEGORIA`)) TYPE=InnoDB;

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que vejo esta correto sim

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.