Optimisation BDD

WRInaute impliqué
Bonjour,
J'ai développé un moteur de recherche. Celui-ci doit rechercher des informations dans une table morceaux assez conséquente.
La schéma de la table morceaux est le suivant (mode simplifié)
id | titre | genre | genre_1 | instrument | instrument_1 | ...
0 | smashit | electro | pop | guitare | basse

J'ai d'un autre côté des tables qui font références sur les instruments et genres. Par exemple la table genre
id_genre | intitule
0 | electro
1 | pop

La table instruments
id_instrument | intitule
0 | basse
1 | guitare

Je souhaiterai savoir quelle est la meilleure façon d'intégrer des données dans la table morceaux.
J'ai des requetes de types
SELECT genre, genre_1, instrument, instruments_1 WHERE genre = 'folk'

Je me demande si dans la tableau morceaux, il serait préférable d'utiliser les id des tables références plutôt que du texte. Ainsi lors de l'affichage je pourrai récupérer les champs intitulés des tables références par des JOIN

Donc est-il préférable d'avoir ce shéma sur la table morceaux...

id | titre | genre | genre_1 | instrument | instrument_1
0 | smashit | electro | pop | guitare | basse

ou celui ci pour une question de rapidité de recherche

id | titre | genre | genre_1 | instrument | instrument_1
0 | smashit | 0| 1 | 1| 0

Cordialement.
 
WRInaute impliqué
La deuxième, tout simplement car il n'existe pas beaucoup de méthode pour avoir une bonne base de données (mais a peu près une seule)... Le deuxième exemple te permet d'éviter la redondance des données (principe de base des BDD). Et quand tu changes l'intitulé de la rubrique 3l3ctro tu ne le changes qu'une fois dans la table des styles et pas 4000 fois dans la table des morceaux.
Tout ca n'est qu'histoire d'ANALYSE et je trouve que ce sujet est largement sous-estimé alors que c'est le point central de toute base de données.
 
WRInaute impliqué
Dailleurs tu devrais également créer une table de relation pour les instruments par chanson

id_song | titre
1 |la chanson

id_song | id_instrument
1 | 1
1 | 2
etc etc
 
WRInaute impliqué
Merci pour ce complément d'informations.
C'est tout à fait vrai que la redondance est à éviter à tout prix.
 
WRInaute passionné
Au final ta table morceaux doit donc ressembler à ça
id | titre

les genres et instruments étant dans des tables d'association. :)
 
WRInaute passionné
Merise c'est pas l'ancetre des trucs utilisés aujourd'hui ? Genre MVC ou PAC ? (qui n'en sont plus à leur premiere version)

T'es si vieux que ça e-kiwi ?
 
WRInaute impliqué
Dj_Apx a dit:
Merise c'est pas l'ancetre des trucs utilisés aujourd'hui ? Genre MVC ou PAC ? (qui n'en sont plus à leur premiere version)

T'es si vieux que ça e-kiwi ?

Merde alors, je dois être plus vieux que je ne le pense 8O , moi je carbure à Lapage (Analyse pas objet et inconnue)
 
Discussions similaires
Haut