03-08-2007, 10:26 AM
Je dirais que ça dépends...
Déjà, conceptuellement, si tu dois avoir une répétition de quelques valeurs littérales dans une table avec des milliers d'enregistrement, mieux vaut faire une table de référence.
Pour reprendre ton exemple, je transformerai
en
Ca évitera la redondance du libellé des zones.
Ensuite, faire une grosse table avec tout dedans ou plusieurs petites, bah comme j'ai dit, ça dépends.
Une grosse table sera plus propre et plus standard que plein de petites calquées sur le même modèle après, ils faut voir les performances.
Mon premier projet comprenait des cartes de 30x30 réparties en une 20aine de zones. (18 0000 cases en gros).
Rien de monstrueux mais la table était soumise à tellement de modifications (je rappelle que MySQL 4.0 en myIsam fait des tablelock pour les ajouts/update) que j'ai du éclater cette grosse table en plusieurs petites.
Avec une version/moteur plus performant, il n'est pas sur que ce problème survienne.
Déjà, conceptuellement, si tu dois avoir une répétition de quelques valeurs littérales dans une table avec des milliers d'enregistrement, mieux vaut faire une table de référence.
Pour reprendre ton exemple, je transformerai
Code :
zoning
id x y land other stuff
1 0 0 "startzone" ...
2 1 0 "startzone" ...
...
15728 -38 227 "red mountains" ....
Code :
zoning
id x y land other stuff
1 0 0 1 ...
2 1 0 1 ...
...
15728 -38 227 12 ...
et
zone_name
id land
1 startzone
...
12 red mountains
Ca évitera la redondance du libellé des zones.
Ensuite, faire une grosse table avec tout dedans ou plusieurs petites, bah comme j'ai dit, ça dépends.
Une grosse table sera plus propre et plus standard que plein de petites calquées sur le même modèle après, ils faut voir les performances.
Mon premier projet comprenait des cartes de 30x30 réparties en une 20aine de zones. (18 0000 cases en gros).
Rien de monstrueux mais la table était soumise à tellement de modifications (je rappelle que MySQL 4.0 en myIsam fait des tablelock pour les ajouts/update) que j'ai du éclater cette grosse table en plusieurs petites.
Avec une version/moteur plus performant, il n'est pas sur que ce problème survienne.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC
Ninety-Ninety Rule
"Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire"
Vu sur IRC