Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera... Tudo certo?
Hoje sou eu aqui pedindo ajuda... Tenho 2 tabelas no banco (noticia e portfolio).
O problema:
Preciso que seja possível definir destaques entre estas duas tabelas. Ou seja, o usuário do sistema poderá escolher 2 destaques, sendo possível 2 noticias, 2 portfolios ou 1 de cada. Na hora de modelar o banco, só consegui pensar em algo assim:
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
-- -----------------------------------------------------
-- Table noticia
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `noticia` (
`noticiaId` MEDIUMINT(8) NOT NULL AUTO_INCREMENT ,
`noticiaTitulo` VARCHAR(100) NOT NULL ,
PRIMARY KEY (`noticiaId`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table portfolio
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `portfolio` (
`portfolioId` MEDIUMINT(8) NOT NULL AUTO_INCREMENT ,
`portfolioTitulo` VARCHAR(100) NOT NULL ,
PRIMARY KEY (`portfolioId`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table destaque
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `destaque` (
`destaqueId` MEDIUMINT(8) NOT NULL AUTO_INCREMENT ,
`noticiaId` MEDIUMINT(8) NULL ,
`portfolioId` MEDIUMINT(8) NULL ,
PRIMARY KEY (`destaqueId`) ,
INDEX `fk_destaque_noticia` (`noticiaId` ASC) ,
INDEX `fk_destaque_portfolio1` (`portfolioId` ASC) ,
CONSTRAINT `fk_destaque_noticia`
FOREIGN KEY (`noticiaId` )
REFERENCES `noticia` (`noticiaId` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `fk_destaque_portfolio1`
FOREIGN KEY (`portfolioId` )
REFERENCES `portfolio` (`portfolioId` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
/applications/core/interface/imageproxy/imageproxy.php?img=http://img824.imageshack.us/img824/2219/modelh.png&key=10713ef9dadf6715e4b602c51ad8499a524817116c945f6eb528f8123c74ac3e" alt="modelh.png" />
Achei meio "feio" fazer assim, mas foi a melhor opção que achei. Não consegui achar nada na internet sobre o assunto (provavelmente porque não sei o termo certo pra procurar), então resolvi perguntar para os amigos aqui.
Esta é a melhor opção? Se não for, qual seria?
Obrigado!!!
Carlos Eduardo
PS : Os campos da tabela de noticias e portfólio não são só estes. Aí foi só pra exemplo.
Carregando comentários...