Restringir campos

1. Restringir campos

Paulo Henrique Santiago Goes
lordwadder

(usa Fedora)

Enviado em 10/05/2010 - 11:50h

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á...


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts