Espector 0 Denunciar post Postado Agosto 13, 2009 Ola, estou fazendo um sistema de ordens de serviço.. essa tebela eh do cliente.... CREATE TABLE cliente ( idcliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(20) NOT NULL, telefone VARCHAR(8) NOT NULL, celular VARCHAR(8) NOT NULL, endereco VARCHAR(200) NOT NULL, cidade VARCHAR(150) NULL, bairro VARCHAR(150) NOT NULL, PRIMARY KEY(idcliente) ) e gostaria de vincular esta tabela com a de cima.. CREATE TABLE ordem ( idordem INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome_cliente VARCHAR(150) NOT NULL, // da tabela cliente tel_cliente VARCHAR(8) NOT NULL, // da tabela cliente cel_cliente VARCHAR(10) NOT NULL, // da tabela cliente descricao VARCHAR(500) NOT NULL, andamento VARCHAR(10) NOT NULL, PRIMARY KEY(idusuario) ) e gostaria de saber como eu faço para a ordem ter 2 estágios: -Andamento -Concluido desde ja agradeço. Compartilhar este post Link para o post Compartilhar em outros sites
DCD 1 Denunciar post Postado Agosto 13, 2009 Olá ESPECTOR, As questões que colocas davam para muita explicação, em vez disso vou colocar-te o que eu faria, mesmo sem conhecer o teu problema em detalhe. Em relação à tabela cliente, apenas uma sugestão quanto ao campo nome; VARCHAR(20) parece-me muito pouco (se não for um nickname), caso contrário VARCHAR(80) não me parece demais. Além disso, celular e telefone VARCHAR(8) também me parece pouco, aqui em Portugal, são 9 algarismos, aí não sei... vê isso. A minha sugestão vai para... CREATE TABLE cliente ( idcliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome VARCHAR(80) NOT NULL, telefone VARCHAR(??) NOT NULL, celular VARCHAR(??) NOT NULL, endereco VARCHAR(200) NOT NULL, cidade VARCHAR(150) NULL, bairro VARCHAR(150) NOT NULL, PRIMARY KEY(idcliente)) Em relação à tabela "ordem" é que me parece que as coisas não estão muito bem. Não consigo encontrar uma razão de ser para esta tabela (pelo menos com os campos que estão descriminados). Mas fica uma sugestão que me parece muito mais racional... CREATE TABLE ordem( idordem INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, idcliente INTEGER UNSIGNED NOT NULL, // da tabela cliente descricao VARCHAR(500) NOT NULL, andamento VARCHAR(1) NOT NULL, PRIMARY KEY(idordem)) Acho que o melhor seria descreveres detalhadamente as finalidades destas duas tabelas porque a solução está nas tuas necessidades e não na solução que apresentas, mas basicamente as tabelas terão que ser baseadas nisto. Compartilhar este post Link para o post Compartilhar em outros sites
Espector 0 Denunciar post Postado Agosto 14, 2009 como vou te explicar... assim: a tabela ordem.. tem.. ID como chave primaria. só que essa ordem com esse ID, pertence a um IDCLIENTE, para saber qual ordem eh de qual cliente.. entendeu? x) Compartilhar este post Link para o post Compartilhar em outros sites
DCD 1 Denunciar post Postado Agosto 14, 2009 Então a solução é a que te indiquei, a velha relação Master/Detail, sempre que pretendas ter mais que uma ordem para cada cliente (relação 1 para muitos). Se, pelo contrário, a tabela ordem nunca tiver mais que uma ordem de cada cliente então podes considerar o IDcliente como chave primária mas não AUTO_INCREMENT e ignorar a chave idordem (relação 1 para 1). Estas são as duas situações possíveis, tudo o que vá além disto é tentar reinventar a roda. Tudo o resto que pedes é feito ao nível do código e não ao nível do banco de dados. Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Agosto 16, 2009 Poste sua tentativa. Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Renan 2 Denunciar post Postado Agosto 18, 2009 com relação aos estágios crie um campo por exemplo STATUS com o tipo ENUM('A','C') Compartilhar este post Link para o post Compartilhar em outros sites