Olá Humberto,
Recentemente precisei rever um pouco meus conceitos de relacionamentos, justamente por estar criando uma aplicação de teste com hibernate.
Como para o Hibernate, relacionamentos N x N são tratados com tabelas associativas, acredito que esta seja a melhor prática.
Na verdade não consigo imaginar um relacionamento de muitos para muitos sem uma tabela relacional entre as entidades.
Veja:
Um carro cabe muitas pessoas.
Muitas pessoas cabem em muitos, diferentes, carros.
Assim:
pessoa ------------------ carro
1 --------------------------- 1
2 --------------------------- 2
3 --------------------------- 3
4 --------------------------- 4
4 --------------------------- 1
3 --------------------------- 2
2 --------------------------- 3
1 --------------------------- 4
4 --------------------------- 2
3 --------------------------- 1
2 --------------------------- 4
1 --------------------------- 3
A pessoa 1, por exemplo, é passível passageira dos carros 1, 4 e 2.
O carro 1, por exemplo, é passível transporte das pessoas 1, 4 e 3.
Podemos chamar esta tabela que vincula estes relacionamentos de pessoa_carro, e é assim que o hibernate irá criar.
No seu caso, como não irá utilizar este framework, sugiro que crie as tabelas pessoa, carro e pessoa_carro.
Criando as devidas chavez estrangeiras nesta ultima (pessoa_carro), quais seria, por exemplo, pessoa_id e carro_id.
Tem um exemplo de como colocar na prática esta situação com uso do Hibernate. http://www.guj.com.br/posts/list/218131.java#1114315
Pensando agora como seria sem esta tabela associativa:
Tabela carro / campos:
------- id ------------
------- marca --------
------- modelo -------
------- pessoa_id ----
Tabela pessoa / campos:
------- id ------------
------- nome ---------
------- cpf -----------
------- carro_id ------
O que aconteceria, teriamos de repetir o cadastro de carro ou de pessoas.
exemplo da tabela de carros populada:
Tabela carro / campos:
------- id ------------ 1
------- marca -------- chev
------- modelo ------- classic
------- pessoa_id ---- 1
------- id ------------ 2
------- marca -------- chev
------- modelo ------- classic
------- pessoa_id ---- 2
------- id ------------ 3
------- marca -------- chev
------- modelo ------- classic
------- pessoa_id ---- 3
ou repetir na de pessoas:
Tabela pessoa / campos:
------- id ------------ 1
------- nome --------- Fulano
------- cpf ----------- 123123123
------- carro_id ------ 1
------- id ------------ 2
------- nome --------- Fulano
------- cpf ----------- 123123123
------- carro_id ------ 2
------- id ------------ 3
------- nome --------- Fulano
------- cpf ----------- 123123123
------- carro_id ------ 3
O indicado é usar uma tabela associativa neste caso (N x N).
Bom, espero ter ajudado.
Boa sorte, se precisar manda i.
Abraços
Jsign