Bonjour à tous,
Au moment où je réfléchis à remettre en forme une de mes premières bases dans laquelle j'ai rajouté des choses au fur et à mesure des mes besoins, je me pose une questions sur la normalisation de celle-ci...
Exemple: je gère une base de données de résultats de F1 et de GP2, soit 2 catégories pour une seule table résultats.
Me souvenant du peu de cours que j'ai eu sur le sujet, je l'avais, à l'époque, normalisée au maximum, à savoir:
1 table `resultats` comprenant les résultats et faisant référence à une table `categories` via le champ `xid_categorie`.
Ma table `categories` ne comprend que les valeurs suivantes:
Le champ `xid_categorie` de ma table `resultats` ne comprend donc que des 1 et des 2.
Je sais que d'un point de vue performances, et dans le cas où je n'interroge que ma table `resultats`, c'est préférable d'utiliser des 1 et des 2 que des mots style 'F1' ou 'GP2'. Mais d'un point de vue pratique, ayant souvent besoin du nom de la catégorie (pour la faire afficher dans des liens ou des tableaux,...), je me retrouve à faire une jointure.
Le problème est que je lie souvent ma table `resultats`à d'autres tables également, et ça me fait donc une jointure de plus à gérer (source d'erreur accrue, lisibilité de la requête moins aisée, etc.)
Bref, pensez-vous que je doive conserver une normalisation si pointue de ma base? Ou bien cela ne changera pas grand-chose de mettre directement le nom de mes catégories dans ma table de résultats, si ce n'est de me faciliter la vie sur la construction des mes requêtes?
Et quid des performances?
J'ai fait également la même chose avec les saisons par exemple, ou le champ `xid_saison` comprend des valeurs de 1 à 8 au lieu de contenir directement l'année de la saison, à savoir 2003, 2004, 2005,...
Merci d'avance pour vos avis éclairés.
Au moment où je réfléchis à remettre en forme une de mes premières bases dans laquelle j'ai rajouté des choses au fur et à mesure des mes besoins, je me pose une questions sur la normalisation de celle-ci...
Exemple: je gère une base de données de résultats de F1 et de GP2, soit 2 catégories pour une seule table résultats.
Me souvenant du peu de cours que j'ai eu sur le sujet, je l'avais, à l'époque, normalisée au maximum, à savoir:
1 table `resultats` comprenant les résultats et faisant référence à une table `categories` via le champ `xid_categorie`.
Ma table `categories` ne comprend que les valeurs suivantes:
id_categorie categorie
1 F1
2 GP2
Le champ `xid_categorie` de ma table `resultats` ne comprend donc que des 1 et des 2.
Je sais que d'un point de vue performances, et dans le cas où je n'interroge que ma table `resultats`, c'est préférable d'utiliser des 1 et des 2 que des mots style 'F1' ou 'GP2'. Mais d'un point de vue pratique, ayant souvent besoin du nom de la catégorie (pour la faire afficher dans des liens ou des tableaux,...), je me retrouve à faire une jointure.
Le problème est que je lie souvent ma table `resultats`à d'autres tables également, et ça me fait donc une jointure de plus à gérer (source d'erreur accrue, lisibilité de la requête moins aisée, etc.)
Bref, pensez-vous que je doive conserver une normalisation si pointue de ma base? Ou bien cela ne changera pas grand-chose de mettre directement le nom de mes catégories dans ma table de résultats, si ce n'est de me faciliter la vie sur la construction des mes requêtes?
Et quid des performances?
J'ai fait également la même chose avec les saisons par exemple, ou le champ `xid_saison` comprend des valeurs de 1 à 8 au lieu de contenir directement l'année de la saison, à savoir 2003, 2004, 2005,...
Merci d'avance pour vos avis éclairés.