Ajuda em na criação de tabelas e relacionamentos

Bom dia galera eestou desenvolvendo um programa para portaria de um condominio e tenho uma duvida em relação a criação das tabelas SQL, terei 3 principais tabelas


Pessoa tem
idpessoa
nome 
rg
lote/empresa

Carro:
idcarro
idpessoa - relaciona com idpessoa da tabela pessoa
modelo 
cor
placa

Vou relacionar todas essas tabelas por id pessoa como foreign key, a primeira duvida é a tabela registro

faço assim


Registro:
idregistro
idpessoa - relaciona com idpessoa da tabela pessoa
idcarro - relaciona com idcarro da tabela carro
entrada
saida

ou

Registro:
idregistro
entrada
saida
relaciona com idpessoa da tabela pessoa
nome
rg
lote
relaciona com idcarro da tabela carro
modelo
placa cor

Registro: idregistro idpessoa - relaciona com idpessoa da tabela pessoa idcarro - relaciona com idcarro da tabela carro entrada saida

se eu estivesse desenvolvendo o seu sistema eu faria da forma citada acima, que pra mim é o correto.

Colocando idregistro, idpessoa , idcarro como chave primaria composta da tabela Registro, não podendo haver repetições.

2° duvida como consultarei os relacionamentos assim

tring busca = "select * from `portaria`.`pessoa`, `carro` where idpessoa =' 1';";  
  
Statement st = con.createStatement();  
  
ResultSet rs = st.executeQuery(busca);  
  
  
ou   
  
String busca = "select * from `portaria`.`pessoa` where idpessoa =' 1';";  
String busca1 = "select * from `portaria`.`carro` where idpessoa =' 1';";  
  
Statement st = con.createStatement();  
Statement st1 = con.createStatement();  
  
ResultSet rs = st.executeQuery(busca);  
ResultSet rs1 = st1.executeQuery(busca1);  

assim:

"select 'portaria'.'pessoa'.'nome' , 'portaria'.'carro'.'placa' , 'portaria'.'carro'.'modelo' , 'portaria'.'carro'.'cor' -- outros atributos que achar necessário from 'portaria'.'carro' , 'portaria'.'pessoa' where 'portaria'.'carro'.'idcarro' = 'portaria'.'pessoa'.'idcarro' and 'portaria'.'pessoa'.'idpessoa' = '1';"

wlwwwwwwwww