Entidade x Table SQL

Olá gente,

Eu tenho uma duvida básica que me persegue já a muito tempo, e estou agora estudando o relacionamento com o banco de dados, estou precisando solucionar está duvida.

Por exemplo:

Eu tenho uma entidade Passageiro:
private Integer id;  
private String nome;  

Outra entidade Aviao:
private Integer id;  
private Integer capacidade;  

Outra entidade Aeroporto:
private Integer id;  
private String nome;  

E a ultima entidade Voo;
private String numeroDoVoo;  
private Calendar data;  
private Aeroporto aeroportoOrigem;  
private Aeroporto aeroportoDestino;  
private Integer numeroDePassageiros;  
private List <Passageiro> passageiros;  
private Aviao aviao;  

Minha dúvida é: Como eu criaria as minhas minhas tabelas no Banco de dados Sql? Já que , por exemplo, o MySql não aceita uma coluna do tipo Aviao nem uma Lista de Passageiros. (é claro)

Eu tentaria fazer assim:

CREATE TABLE PASSAGEIRO (
ID INT UNSIGNED NOT NULL auto_increment,
NOME VARCHAR (45) NOT NULL,
PRIMARY KEY (ID)

CREATE TABLE AVIAO (
ID INT UNSIGNED NOT NULL auto_increment,
CAPACIDADE INT UNSIGNED NOTNULL DEFAULT ‘0’,
PRIMARY KEY (ID))

CREATE TABLE AEROPORTO (
ID INT UNSIGNED NOT NULL auto_increment,
NOME VARCHAR(45) NOTNULL,
PRIMARY KEY (ID))

CREATE TABLE VOO (
NUMERO_DO_VOO VARCHAR (15) NOT NULL ,
DATA DATE,
AEROPORTO_ORIGEM_ID INT UNSIGNED NOT NULL,
AEROPORTO_DESTINO_ID INT UNSIGNED NOT NULL,
NUMERO_DE_PASSAGEIROS INT UNSIGNED NOT NULL,
AVIAO_ID INT UNSIGNED NOT NULL,
PRIMARY KEY (NUMERO_DO_VOO),
FOREIGN KEY (AVIAO_ID) REFERENCES AVIAO(ID),
FOREIGN KEY (AEROPORTO_ORIGEM_ID) REFERENCES AEROPORTO(ID),
FOREIGN KEY (AEROPORTO_DESTINO_ID) REFERENCES AEROPORTO(ID))

Eu estou certo ?

Eu também teria outras dúvida :

Eu estou usando Struts com os pacotes Models, Daos, Forms e Actions, e persistência com JDBC.

Como eu faço para setar as minha colunas do banco de dados que são do tipo INT (aeroporto_id e aviao_id), usando os gets da minha ActionForm que tem os atributos do tipo Aeroporto, Aviao (exemplo: Voo.getAviao() e Voo.getAeroportoDeOrigem()).

Então eu teria que mudar os atributos das minhas entidades ?

Olá amigo, eu faço igual a você: utilizo chaves estrangeiras.
Com o Hibernate consigo construir os devidos objetos com base nessas chaves.

Agora quanto ao Struts, não o uso, não consigo te ajudar :wink: