Relaacionamento de tabelas.. Mysql

4 respostas
Deluxe

galera to programando em jsf, hiber annotations e spring..
eh o seguinte..
alguem sabe como eu faco pra relacionar essas 2 tabelas??
eu quero que Um Voo tenha N intinerarios..
alguem pode me informar como fica meu banco e como fica inserindo manualmente?

Tabela voo
create table voo
(
	idVoo int(10) unsigned NOT NULL auto_increment,
	numeroVoo int(10),
	equipamento varchar(200),
	assentosOferecidos int(10),
	payload int(10),
	DI int(10),
	idIntinerario INTEGER,
	dataVoo varchar(20),
	
PRIMARY KEY (idVoo)
);

INSERT 
INTO
voo (numeroVoo,equipamento,assentosOferecidos,payload,DI,idIntinerario,dataVoo) values('11111','xxxxx','99','5555','999','1','27/09/2008');

Tabela Intinerario

create table intinerario
(
	idIntinerario int(10) unsigned NOT NULL auto_increment,
	numeroIntinerario int(10),
	horarioDecolagem varchar(10),
	horarioPouso varchar(10),
	distancia varchar(10),
	


PRIMARY KEY (idIntinerario)
);
insert into  intinerario (numeroIntinerario,horarioDecolagem,horarioPouso,distancia) values('333','12:00','14:00','1234');

help?

4 Respostas

R

Se um voo vai ter N itinerários, você não pode colocar na tabela voo o idItinerario, você pode fazer uma tabela de relação entre as duas ou então na tabela itinerario você coloca uma FK para a tabela voo (idVoo), mas isso se cada itinerario for usado em apenas um voo. Falow…

Deluxe

eh pq do jeito que ta
1 voo so pode ter 1 intinerario…
eu quero que varios tinerario relacione somente com 1 voo…
sendo que os mesmo intinerarios podem ser usados por outros voos tb…
se pode me mostrar como fica minha tabela?
obrigado

R

Se o relacionamento é N pra N o jeito é criar uma tabela de relacionamento, por exemplo voo_x_itinerario, e a chave primária dessa tabela é composta (idVoo e idItinerario), qualquer coisa pergunta aí…falow!

rdantas

Sua tabela voo ficaria assim:

# create table voo  
# (  
#     idVoo int(10) unsigned NOT NULL auto_increment,  
#     numeroVoo int(10),  
#     equipamento varchar(200),  
#     assentosOferecidos int(10),  
#     payload int(10),  
#     DI int(10),  
#     idIntinerario int(10) unsigned NOT NULL,    
#     dataVoo varchar(20),  
# PRIMARY KEY (idVoo)  ,
# FOREIGN KEY (idIntinerario) references intinerario(idIntinerario)
# );

Lembrando que vc pode add os parametros de “ON UPDATE” e “ON DELETE” na foreign key.

Espero ter ajudado.

Criado 28 de julho de 2008
Ultima resposta 28 de jul. de 2008
Respostas 4
Participantes 3