stview 0 Denunciar post Postado Março 11, 2004 Estou com varias dúvidas sobre MySQl: Estou a criar um banco pela primeira vez, todos os outros eu estava apenas a copiar e fazer pequenas modificações, conseguia me virar e tal. Mas agora estou a criar uma aplicação totalmente sozinho, um gerenciador de projetos e clientes. Já tenho toda a idéia pronta e tal mas tenho algumas dúvidas quanto a otimização das tabelas. Por exemplo, todas as tabelas terão de ser interligadas pelo id do cliente, tenho a tabela com dados do cliente, outra dos pedidos/jobs solicitados, uma dos pagamentos e outras aida não criadas, e serão muitas devido a varias outras aplicações conjuntas. Instalei o DbDesigner 4 para me ajudar .. mas ele só abre xml .. e só exporta sql ... dai janao sei direito uma base .. ter que aprender a converter sria bem complicado tb ... A principal dúvida seria sobre os tipos dos campos ... por exemplo: Quantas keys primary pode ter? Onde digo qual é primary? Pra que serve uma key que não é primary, onde eu seto isso? Tenho estes exemplo: CREATE TABLE usuarios ( IDUser mediumint(5) unsigned NOT NULL auto_increment, IDNivel tinyint(3) unsigned DEFAULT '0' NOT NULL, Nome text, PRIMARY KEY (IDUser, IDNivel), KEY IDUser (IDUser, IDNivel));CREATE TABLE `fotos` ( `IDFoto` mediumint(8) unsigned NOT NULL auto_increment, `IDGaleria` mediumint(7) unsigned NOT NULL default '0', `Descricao` varchar(200) default '0', `Foto` varchar(200) default '0', PRIMARY KEY (`IDFoto`), KEY `IDFoto` (`IDFoto`,`IDGaleria`)) TYPE=MyISAM AUTO_INCREMENT=1;CREATE TABLE `noticias` ( `IDNoticia` mediumint(7) unsigned NOT NULL auto_increment, `IDUser` mediumint(5) unsigned NOT NULL default '0', `IDCat` mediumint(5) unsigned NOT NULL default '0', `IDGaleria` mediumint(9) unsigned default '0', `Titulo` text, `Texto` text, PRIMARY KEY (`IDNoticia`), KEY `IDNoticia` (`IDNoticia`,`IDUser`,`IDCat`), KEY `IDGaleria` (`IDGaleria`)) TYPE=MyISAM AUTO_INCREMENT=114; Eles são, pra mim, muito diferentes, pra que serve por exemplo o KEY `IDGaleria` (`IDGaleria`), e qual a diferença entre ele e KEY `IDGaleria` (`IDGaleria`,`IDUSER`) por exemplo .... Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Março 11, 2004 Bom, quanto às chaves, primary key (pk) você pode ter apenas uma. Esta será a chave que identificará o registro, por exemplo, cpf em um cliente. Um chave não primária poderia ser no seu exemplo o nome do cliente, ele poderia se repetir, mas você faria consultas também pelo nome. (`IDGaleria`) = diz que a chave principal será IDGaleria (`IDGaleria`,`IDUSER`) a chave será IDGaleria+IDUSer. O mais correto seria você estudar um pouco sobre banco de dados, neste link (http://www.sqlmagazine.com.br/apostilas.asp) tem algumas apostilas sobre este assunto. Espero ter lhe ajudado, embora talvez tenha confundido mais ainda, mas dá uma boa olhada nas apostilas, qq coisa volta aí. Compartilhar este post Link para o post Compartilhar em outros sites
stview 0 Denunciar post Postado Março 11, 2004 walace,Sobre este link que você me passou cara, eu ja havia entrado e nehum link funciona ....Só me explica melhor esse esquema de a chave será IDGaleria+IDUSer.Será a união dos dois valores?IDGaleria = 1 e IDUSer = 2 == 12 ... Isso? Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Março 11, 2004 Sim, é a união de dois valores, pois apenas com galeria esta tabela não poderia ter uma pk porque podem existir várias clientes com a mesma galeria.Um exemplo: Funcionário e DependentePara funcionário você terá uma chave primária (pk) que poderá ser o cpf, cada um terá um.Para dependente você terá que ter a pk igual a cpf do funcionario+nome, pois nem sempre os dependentes terão cpf, mas poderão ter nomes iguais, então eles não conseguiriam sozinhos ter uma chave primária.Dá uma procurada por "Teoria de Banco de Dados"+Apostila no google que deve achar algo.Se puder comprar ou pegar em alguma biblioteca conheço dois bons livros:-Sistema de Banco de Dados (Abraham Silvers Chartz, Henry Korty, e outro que não lembro rs)-Sistema de Banco de Dados (C.J. Date)[]s Compartilhar este post Link para o post Compartilhar em outros sites
stview 0 Denunciar post Postado Março 11, 2004 Muito obrigado walace, vou procurar estes livros. Compartilhar este post Link para o post Compartilhar em outros sites