Bonjour à tous,
ma question concerne l'utilisation des index avec mysql.
Dans ma base de données, j'ai des publications associées à des lieux. Ces lieux sont répartis en 2 familles distinctes. En langage base de données, ça donne donc 3 tables :
- 1 table publications
- 1 table lieux_1
- 1 table lieux_2
Une publication ne peut être associée qu'à un seul lieu, je vais donc créer la jointure au niveau de la table publications. Mais quelle est la meilleure solution ?
1) 2 champs : "lieu_1_id" et "lieu_2_id". Une publication peut être associée au maximum à un seul lieu, l'un de ces 2 champs sera donc forcément vide. Il se peut aussi que les 2 soient vides.
2) 1 seul champ "lieu_id" de type varchar, contenant : <lettre initiale pour déterminer la table><lieu_id>
Exemple:
x123 pour le lieu d'id 123 de la table lieux_1
y123 pour le lieu d'id 123 de la table lieux_2
Avantage de la seconde solution : 1 seul index, contre 2 pour la première solution.
Désavantage : index sur un Varchar. Besoin d'utiliser la fonction sql SUBSTR pour effectuer mes jointures (pour isoler l'id).
Quelle solution vous semble la plus efficace ?
Merci d'avance pour votre aide![]()
Partager