11-02-2010, 10:07 AM
De toute façon, la première structure est à proscrire. Une ville possède n bâtiments, même si n peut être fini, c'est une relation 1->n, ça suppose une jointure : dans la table bâtiments tu met un ville_id, pareil pour les unités.
C'est beaucoup plus maintenable.
Ensuite, tu dis
Enfin :
Alors que la 2, si tu offre un nouveau possible, eh ben tu rajoute RIEN! Tu donne seulement au joueur la possibilité d'acheter le nouveau bâtiment, auquel cas tu ajoute une ligne dans ta table bâtiment. Mais faut pas mettre de lignes avec nombre = 0!
Le mieux, c'est une table liste_batiment, il te suffit de rajouter un bâtiment à cette table, et il apparaît dans la liste des constructions automatiquement, etc... Faut pas faire un if($_POST['batiment'] == 1)... elseif...
C'est plus une requete INSERT ...ON DUPLICATE KEY UPDATE pour moi.
Voilà, en gros c'est à peu près tout, système 2 c'est bien mieux pour moi
C'est beaucoup plus maintenable.
Ensuite, tu dis
Citation :- Nombreuses requêtes nécessaires pour faire des update dans la deuxième structure : une pour la ville, une pour chaque type de bâtiment et chaque type d'unité mis à jour. Si j'étends la structure aux ressources et aux technologies, le nombre de requêtes par page va juste exploser, et je ne parle même pas encore des batailles...Là, il faut que tu comprenne que il faut accepter de perdre un peu de performance, et de produire un code acceptable. Parce que la première structure est vraiment mer**ique, et peut-être même pas plus rapide d'ailleurs. Tu dis 100000 lignes par table, et tu penses que c'est gros. Pour un SGBD c'est ridicule, par contre 70 colonnes, ça fait mal!
Enfin :
Citation :- Le jour où j'ajoute une nouvelle unité ou un nouveau bâtiment, c'est plus facile avec la première structure (il suffit d'ajouter une colonne, contre autant de lignes qu'il y a de villes pour la deuxième structure)Là tu te trompes. Structure 1, tu ajoutes un bâtiment, faut rajouter une colonne, et changer toutes tes requêtes, car une bonne requête précise les noms de champs genre : SELECT champ1, champ2...
Alors que la 2, si tu offre un nouveau possible, eh ben tu rajoute RIEN! Tu donne seulement au joueur la possibilité d'acheter le nouveau bâtiment, auquel cas tu ajoute une ligne dans ta table bâtiment. Mais faut pas mettre de lignes avec nombre = 0!
Le mieux, c'est une table liste_batiment, il te suffit de rajouter un bâtiment à cette table, et il apparaît dans la liste des constructions automatiquement, etc... Faut pas faire un if($_POST['batiment'] == 1)... elseif...
C'est plus une requete INSERT ...ON DUPLICATE KEY UPDATE pour moi.
Voilà, en gros c'est à peu près tout, système 2 c'est bien mieux pour moi