Você está na página 1de 8

DSWII Prof.

Andrea Garcia

Criando chaves estrangeiras (Foreign Key) no PHPMyAdmin

Com base neste banco de Dados, chamado Uber, contendo as 4 tabelas abaixo:

A programação para a construção desta estrutura em SQL:

create database uber;use uber;

create table tb_motorista(


id_motorista int primary key auto_increment,
nome_motorista varchar(45),
fone_motorista varchar(45)
);

create table tb_cliente(


id_cliente int primary key auto_increment,
nome_cliente varchar(45),
fone_cliente varchar(45),
endereco varchar(45)
);

create table tb_veiculo(


id_veiculo int primary key auto_increment,
placa varchar(45),
modelo varchar(45),
cor varchar(45),
ano int,
cod_motorista int,
foreign key(cod_motorista) references tb_motorista(id_motorista)
);
DSWII Prof. Andrea Garcia

create table tb_viagem(


id_viagem int primary key auto_increment,
dia date,
hora time,
valor float,
origem varchar(45),
destino varchar(45),
cod_cliente int,
cod_motorista int,
foreign key(cod_cliente)references tb_cliente(id_cliente),
foreign key(cod_motorista)references tb_motorista(id_motorista)
);

Estrutura no PHPMyAdmin após o script de sql ser executado:

 Tabela Cliente (tb_cliente) + Índice chave primária

 Tabela Motorista (tb_motorista) + Índice chave primária


DSWII Prof. Andrea Garcia

 Tabela Veículo (tb_veiculo) + Índice chave primária

Relacionamento:

Resultado:
DSWII Prof. Andrea Garcia

 Tabela Viagem (tb_viagem) + Índice chave primária

Relacionamentos:

Resultado:
DSWII Prof. Andrea Garcia

Utilizando a tb_veiculo, ligando esta tabela a tabela tb_motorista

1. Construa a tabela, colocando os campos que serão chave estrangeira.

2. Visualize a estrutura da tabela criada

3. Clicando em Indices, neste momento deverá haver somente um índice (id_veiculo)

4. Clique em Vista de Relação

Você terá a visão de todos os campos da tabela

5. Você irá criar 1 índice (que agora será a chave estrangeira), então clique em +Índices, crie 1 índice, que
será utilizado para ligar a tabela tb_veiculo com a tabela tb_motorista através do campo (cod_motorista), e
clique em Executar
DSWII Prof. Andrea Garcia

6. Nesta tela, coloque o nome do índice, em Tipo de Índice escolha INDEX (não deixe UNIQUE, que não
deixará repetir o cadastro) e selecione o campo relacionado, e clique novamente em executar

7. Teremos o campo cod_motorista, abertos (com setas) para selecionar o relacionamento com campos de
outras tabelas, neste caso a opção a ser escolhida será tb_motorista.id_motorista. E eles estarão listados
com chaves (mas ainda não estão definidas como estrangeiras, só ficarão assim após preenchermos os
itens acima).

Em constraint name de cod_motorista preencha com: tb_veiculo_ibfk_1

Clique em Guardar.
Pronto, agora é só cadastrar na tabela veículo, para testar.
Para dar certo, deverá ter 1 motorista cadastrado.

Utilizando a tb_viagem como exemplo, vamos fazer um passo a passo:

1. Construa a tabela, colocando os campos que serão chave estrangeira.

2. Visualize a estrutura da tabela criada

3. Clicando em Indices, neste momento deverá haver somente um índice (id_viagem)


DSWII Prof. Andrea Garcia

4. Clique em Vista de Relação

Você terá a visão de todos os campos da tabela

5. Você irá criar 2 índices (que agora serão chaves estrangeiras), então clique em +Índices, crie 1 índice, que
será utilizado para ligar a tabela tb_viagem com a tabela tb_cliente através do campo (cod_cliente), e
clique em Executar

6. Nesta tela, coloque o nome do índice, em Tipo de Índice escolha INDEX (não deixe UNIQUE, que não
deixará repetir o cadastro) e selecione o campo relacionado, e clique novamente em executar
DSWII Prof. Andrea Garcia

7. Repita o mesmo procedimento para o campo cod_motorista, o resultado final será:

8. Você terá os campos cod_cliente e cod_motorista, abertos (com setas) para selecionar o relacionamento
com campos de outras tabelas. E eles estarão listados com chaves (mas ainda não estão definidas como
estrangeiras, só ficarão assim após preenchermos os itens acima.

Em constraint name de cod_cliente preencha com: tb_viagem_ibfk_1


Em constraint name de cod_motorista preencha com: tb_viagem_ibfk_2
Clique em Guardar.
Pronto, agora é só cadastrar na tabela viagem, para testar.
Para dar certo, deverá ter 1 motorista com veículo cadastrado e 1 cliente.

Você também pode gostar