Ir para conteúdo
Fórum Script Brasil
  • 0

Restringir campos


Paulo Goes

Pergunta

Pessoal, to com um pequeno problema e vou tentar explicar; Tenho uma tabela de usuários como a descrita abaixo:

CREATE TABLE `user` (
`uid` int(3) NOT NULL AUTO_INCREMENT,
`uunidade` varchar(50) NOT NULL,
`usenha` varchar(32) NOT NULL,
`uemail` varchar(50) NOT NULL,
`utelefone` int(10) NOT NULL,
`utipo` enum('A','N') NOT NULL DEFAULT 'N',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
ONDE: uunidade => Nome do usuário Uma tabela com as áreas que ele pode locar:
CREATE TABLE `area` (
`aid` int(3) NOT NULL AUTO_INCREMENT,
`anome` varchar(50) NOT NULL,
`atipo` varchar(32) NOT NULL,
PRIMARY KEY (`aid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
ONDE: anome => Nome da área que pode ser locada E a última tabela é a tabela de pedidos que o usuário fará para locar uma área x:
CREATE TABLE `pedidos` (
`pid` int(10) NOT NULL AUTO_INCREMENT,
`pfinalidade` varchar(50) NOT NULL,
`pdata` date NOT NULL,
`pturnom` INT(1) NOT NULL DEFAULT 0,
`pturnot` INT(1) NOT NULL DEFAULT 0,
`pturnon` INT(1) NOT NULL DEFAULT 0,
`anome` varchar(50) NOT NULL,
`uunidade` varchar(50) NOT NULL,
PRIMARY KEY (`pid`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Como vocês podem perceber, na tabela pedidos consta os campos `uunidade` (nome do usuário da tabela `user`) e `anome` (nome da área da tabela `area`). O que eu quero é relacionar essas tabelas de forma que os únicos usuários que podem ser incluídos no campo `uunidade` da tabela pedidos sejam os que constarem na tabela `user` e que as áreas da tabela pedidos sejam as que constam no campo `anome` da tabela `àrea`.

O que devo fazer? FOREIGN KEY ou o quê?

Grato desde já...

Editado por Denis Courcy
Melhorar entendimento do código
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...