yetiH 0 Denunciar post Postado Janeiro 26, 2006 vlw aí Adailton e Fabyo.. só pra completar... eu fui um que sempre fiz as referenciações através de script PHP.. pois até ontem eu não sabia que dava pra criar foreign key.. e se eu fosse apagar um campo que estava referenciando outro..eu fazia tipo..delete from produtos where id = $id...delete from planilhas where id_prod = $id..e assim por diante.. acho que também ficava organizado e possível..né?vou me aprofundar nessas chaves aí agora.. valeu!! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 beleza yetiH, mas o servidor controlando é bem melhor porque ele nao deixa você apagar um campo referenciado mesmo que você queira nao da, só se você antes tirar a referencia do campo e efeito cascade é legal tbm que se você deleta um registro que esta relacionado em varios lugares o sistema pode deletar tudo na seguencia por isso o efeito cascata Compartilhar este post Link para o post Compartilhar em outros sites
yetiH 0 Denunciar post Postado Janeiro 26, 2006 OK! Fabyo.. acho melhor você responder a patricias ali encima.. senão ela ainda vai ficar braba comigo! ;P hehe vou esperar você explicar melhor esses efeitos.. cascade.. ao final dessa discussão... e por sorte já tenho um projeto que eu estava fazendo.. e já vou utilizar a chave estrangeira! vlw [editando] -- achei um tópico ali no MySQL interessante tb http://forum.imasters.com.br/index.php?showtopic=100466 e acho que com isso e mais umas pesquisadas já consigo entender certinho esses efeitos! vlw galera! Compartilhar este post Link para o post Compartilhar em outros sites
patricias 0 Denunciar post Postado Janeiro 26, 2006 'yetiH' disse: OK!Fabyo.. acho melhor você responder a patricias ali encima.. senão ela ainda vai ficar braba comigo! ;P hehevou esperar você explicar melhor esses efeitos.. cascade.. ao final dessa discussão... e por sorte já tenho um projeto que eu estava fazendo.. e já vou utilizar a chave estrangeira!vlw[editando] -- achei um tópico ali no MySQL interessante tbhttp://forum.imasters.com.br/index.php?showtopic=100466e acho que com isso e mais umas pesquisadas já consigo entender certinho esses efeitos!vlw galera!yetiH rs rs , vou mesmo!!!! http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif q nada, sei que muitos poderão tirar proveito desse topico! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 Titulo Conteudo Foto Data Fonte Tipo (se é destaque ou não) enum ("s","n") Setor (qual setor pertence) fazer uma junção aqui nao precisa referenciar ele na tabela Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 adailton pelo que entendi é uma pessoa só que vai postar a noticia Compartilhar este post Link para o post Compartilhar em outros sites
patricias 0 Denunciar post Postado Janeiro 26, 2006 Adailton disse: Não é interessante referenciar usuario...(quem esta postando a notícia)? Fabyo disse: Titulo Conteudo Foto Data Fonte Tipo (se é destaque ou não) enum ("s","n") Setor (qual setor pertence) fazer uma junção aqui nao precisa referenciar ele na tabela Uma unica pessoa ficará encarregada de cadastrar as noticias que lhes serão enviada, essa pessoa tera um usuario e senha de admin para tal função Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 é se o caso for ter varios usuario vamos colocar logo, um banco nao pode ficar sendo custurado tem que modelar e nao mecher mais Compartilhar este post Link para o post Compartilhar em outros sites
yetiH 0 Denunciar post Postado Janeiro 26, 2006 por isso a maior parte do tempo vai no planejamento... ;PFabyo.. fiquei com dúvida agora em uma coisa..você falou que monta as tabelas no notepad..e você as executa aonde? em script PHP?tem como fazer isso no DOS? Compartilhar este post Link para o post Compartilhar em outros sites
patricias 0 Denunciar post Postado Janeiro 26, 2006 Fabyo disse: é se o caso for ter varios usuario vamos colocar logo, um banco nao pode ficar sendo custurado tem que modelar e nao mecher mais Uma unica pessoa ficará encarregada de cadastrar as noticias que lhes serão enviada, essa pessoa tera um usuario e senha de admin para tal função. Não sei até que ponto será necessário cadastrar mais usuário. Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Janeiro 26, 2006 Só complementando... a empresa responsável pela tecnologia InnoDB foi comprada recentemente pela Oracle. ;) Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 tem sim faz via prompt, mas eu testo depois no MySQLQueryBrowser e as vezes eu monto as tabelas no MySQL Administrator o que o Prog falou é verdade, mas ate o momento nao anuciaram nenhuma mudança quanto a licença, espero que continue free Compartilhar este post Link para o post Compartilhar em outros sites
patricias 0 Denunciar post Postado Janeiro 26, 2006 Adailton disse: Entenda... quando você modela a base de dados, tem por obrigação pensar nas atualizações que o programa possa a vir ter..Pensando assim, mesmo que no momento, somente uma pessoa ira cadastrar as noticias, é interessante ja deixar a modelagem dos dados prontas para Multi-User...em determinadomomento, se você,ou seu cliente decidir colocar mais pessoas escrevendo e publicando matérias não será necessário mexer no banco e fazer remendos... patricias disse: Fabyo disse: é se o caso for ter varios usuario vamos colocar logo, um banco nao pode ficar sendo custurado tem que modelar e nao mecher mais Uma unica pessoa ficará encarregada de cadastrar as noticias que lhes serão enviada, essa pessoa tera um usuario e senha de admin para tal função. Não sei até que ponto será necessário cadastrar mais usuário. caso tenha mais usuarios vou usar uma tabela de junções dai nao precisa mecher na tabela noticias Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 da uma olhada : CREATE TABLE imagens ( id_imagem INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , imagem VARCHAR( 64 ) NOT NULL ) TYPE = innodb; CREATE TABLE noticias ( id_noticia INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , titulo VARCHAR( 40 ) NOT NULL , fonte VARCHAR( 64 ) NOT NULL , conteudo VARCHAR( 250 ) NOT NULL , destaque ENUM( "s", "n" ) NOT NULL DEFAULT 'n', fk_imagem int(11) unsigned NOT NULL, FOREIGN KEY (fk_imagem) REFERENCES imagens(id_imagem) ON UPDATE NO ACTION ON DELETE RESTRICT, data DATE NOT NULL, UNIQUE KEY titulo (titulo) ) TYPE = innodb; CREATE TABLE setores ( id_setor INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , setor VARCHAR( 64 ) NOT NULL ) TYPE = innodb; CREATE TABLE noticias_setores ( id_noticia int(11) unsigned NOT NULL, id_setor int(11) unsigned NOT NULL, FOREIGN KEY (id_noticia) REFERENCES noticias(id_noticia) ON UPDATE NO ACTION ON DELETE CASCADE, FOREIGN KEY (id_setor) REFERENCES setores(id_setor) ON UPDATE CASCADE ON DELETE RESTRICT, PRIMARY KEY (id_noticia, id_setor) ) TYPE = innodb; CREATE TABLE usuarios ( id_usuario int(11) unsigned NOT NULL auto_increment, nome varchar(40) NOT NULL, login varchar(20) NOT NULL, senha char(32) NOT NULL, email varchar(64) default NULL, PRIMARY KEY (id_usuario), UNIQUE KEY email (email) ) TYPE = innodb; ate aqui ja da pra vcs verem uma coisa interessante nao da pra gravar na tabela imagens um id(fk_imagem) que nao existir cadastrado isso ja é de grande ajuda para o banco ter conteudo real e nao gravar a toa ou dados que nao existam, e outra coisa depois de gravado na tabela imagens e gravado na tabela noticias aquela imagem que ta relacionada no noticias nao pode ser apagada podem testar se quiser vai dar um erro 1451 Compartilhar este post Link para o post Compartilhar em outros sites
patricias 0 Denunciar post Postado Janeiro 26, 2006 Legal, fiz o q você falou, agora preciso tb da tabela setores, ou seja, a que setor pertence essa noticia. Criei a tabela setores conforme você falou, e o q mais é preciso? CREATE TABLE setores ( id_setor INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , setor VARCHAR( 64 ) NOT NULL ) TYPE = innodb; Compartilhar este post Link para o post Compartilhar em outros sites
patricias 0 Denunciar post Postado Janeiro 26, 2006 Fabyo, pq criou-se a tabela noticias_setores e não precisou criar noticias_imagem? Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 ja atualizei em cima a tabela setores ta la entao junções é para referenciar muitos pra muitos, e a noticia tera apenas 1 imagem se no caso da tabela noticias precisa-se cadastrar mais imagens a gente criaria a junções só exclarecendo a tabela noticias_setores nela sera gravado o id_noticia e o id_setor e o setor nao pode ser apagado se ele tiver referenciado na tabela de junções, e se você apagar uma noticia o sistema ira apagar automaticamente na junções beleza ate aqui ? Compartilhar este post Link para o post Compartilhar em outros sites
patricias 0 Denunciar post Postado Janeiro 26, 2006 Fabyo disse: ja atualizei em cima a tabela setores ta laentao junções é para referenciar muitos pra muitos, e a noticia tera apenas 1 imagem se no caso da tabela noticias precisa-se cadastrar mais imagens a gente criaria a junçõessó exclarecendo a tabela noticias_setores nela sera gravado o id_noticia e o id_setor e o setor nao pode ser apagado se ele tiver referenciado na tabela de junções, e se você apagar uma noticia o sistema ira apagar automaticamente na junções beleza ate aqui ?Po show de bola isso.Adorei!! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Janeiro 26, 2006 quem tiver duvidas só perguntar ,estamos em pausa porque a patricia esta fazendo as telas de cadastro para testar o banco Compartilhar este post Link para o post Compartilhar em outros sites
yetiH 0 Denunciar post Postado Janeiro 26, 2006 té... então uma dúvida...tenho a tabela imagens.. com o id_imagemdaí tenho a tabela notícias com a foreign key fk_imagem referenciada na imagens.id_imagem... e com o ON DELETE RESTRICT certo?daí o que eu não consigo fazer é deletar um registro da tabela imagens se o id_imagem está contido em um campo na noticias.fk_imagem ?é isso né ou o contrário? ou os dois? Compartilhar este post Link para o post Compartilhar em outros sites