MySQL ou Array

Résolu
matthieu -  
 matthieu -
Bonjour,

Je suis sur la refonte d'un site,
actuellement la liste des départements est regroupé dans 2 array ( un pour les numéro, un pour les nom) + 95 array regroupant les départements limitrophes de chaque département.

Je me pose la question de savoir si il ne serait pas plus judicieux de passer par une table en base de donnée (MySQL) avec les départements, leur noms, leur numéros et les limitrophes de chacun.
Vos avis, conseils ?



merci

5 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
L'utilisation d'une base de données est toujours intéressante, dès que tu voudras faire une évolution, tu pourras utiliser cette base.

Mais pour faire quelque chose d'efficace il te faudra un certain nombre de compétences que tu n'as peut être pas encore à l'heure actuelle. Ce n'est pas insurmontable, mais ça nécessite un peu de travail malgré tout.

Je ne comprends pas bien pourquoi tu as 2 tableaux pour tes départements par contre, tu pourrais en utiliser un seul je pense, en faisant quelque chose comme ça :

$dpt[35] = "Ile et vilaine";
$dpt[53] = "Mayenne";


m'enfin après, il y a toujours de nombreuses possibilités. L'avantage avec la base de données c'est que tes données seront liées.
Je pense que tu pourrais travailler avec 2 bases de données, une pour recenser tes départements, avec un 'id' pour le numero et un 'nom' pour le nom par exemple, et une table 'limitrophe' avec une entrée qui fait le lien entre un département et un département limitrophe et autant de lignes que nécessaire...
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
ThEBishop, quand tu dis deux bases de données je pense que tu parles de deux tables
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Non...
0
matthieu
 
Moi non plus je ne comprend pas vraiment l'intérêt des 2 tableaux. ( c'est sur la version actuelle, que je n'ai pas faite).
En fait le tableau contenant les numéros de départements sert seulement à ce que :
le 1 devienne "01",
2 => "02",
3 => "03"...

en fait ma problématique était plus sur la rapidité d'exécution.
Car une partie de moi penche sur le fait de mettre en base de donnée afin que le code soit plus propre sans valeur fixe. mais d'un autre coté mettre en base de donnée c'est augmenter le nombre de requêtes en bases.
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
si tu rentres tes départements ainsi:

$departements=array("01"=>"ain","02"=>"aisne"...,"2A=>"corse... etc..);

et tu le parcours ensuite par une boucle foreach

foreach($departements as $num=>$nom){
   $num contient le numéro et $nom le libellé
}


c'est vrai que comme les départements ne bougent pas tous les jours un array c'est pas mal mais ça ne pose pas de pb non plus pour les accès BDD c'est fait pour
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Et bien à moins que tu héberges ta base de données au Boukistan, tu n'as pas trop à t'en faire pour le temps de réponse, c'est quasiment de l'instantané. Il y a certes un dialogue entre de base de données et le serveur web, que tu n'as pas avec seulement des arrays.

Maintenant la question est surtout de savoir ce que tu comptes faire dans le futur, le fait de mettre en place une base de données va te donner plus de souplesse, tu pourras éventuellement mettre à jour tes tables via des formulaires (bin quoi ? les départements, ça change tous les jours, non ?).

Enfin voilà... pour ma part j'utiliserais sans hésiter une base de données, mais c'est par habitude.

edit:

petite précision, au lieu d'utiliser un tableau d'index, tu peux utiliser un tableau associatif, du coup pas besoin de faire ta "conversion" pour ajouter le 0 :

$tab['01'] = 'machin chose';
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
matthieu
 
Merci pour vos réponses.

En fait il y a déjà un bon nombre de requêtes en base, donc c'était pour pas ajouter une qui n'est pas forcément utile.

Je pense que je vais optimiser le tableau dans un premier temps, et voir plus tard pour mettre en base.
0