Salut à tous !

Je vais reprendre mon analogie avec les voitures.
Le but c'est pouvoir rechercher des voitures selon leurs caractéristiques et d'afficher le tout.

Ma BDD actuelle:

table "voiture" champs:
->id
->marque_id
->couleur_id
->plaque_immatriculation
->pneu_id
etc..

puis:

table "marques" champs:
->id
->nom
table "couleur" champs:
->id
->nom
etc..

mais j'ai un problème, les pneus peuvent avoir des motif dessus: rond, carré, triangle, etc..

je fais donc:

table "motif" champs:

->id
->nom
puis:
table "pneu" champs:
->id
->nom
->motif_id

La requête: (enfin p'tète bien)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
SELECT * FROM voiture
JOIN couleur ON couleur.id = voiture.couleur_id
JOIN pneu ON pneu.id = voiture.pneu_id
JOIN motif ON motif.id = pneu.motif_id
WHERE couleur = 'vert' AND pneu = 'michelin' AND motif = 'losange'
ou

table "voiture" champs:
...
->motif_pneu_id

La requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
SELECT * FROM voiture
JOIN couleur ON couleur.id = voiture.couleur_id
JOIN pneu ON pneu.id = voiture.pneu_id
JOIN motif ON motif.id = voiture.motif_pneu_id
WHERE couleur = 'vert' AND pneu = 'michelin' AND motif = 'losange'
Quel est la meilleure façon de faire? Et pourquoi?