IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

Modélisation d'un menu de site internet


Sujet :

MySQL

  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Par défaut Modélisation d'un menu de site internet
    Bonjour,

    je réalise un site internet et voudrais récupérer les informations de mon menu en base de données (menu prévu pour avoir de 1 à N niveau*).
    Toutefois, j'ai deux idées en tete :
    Première idée :
    1 table rubrique (id_rubrique, intitule)
    1 table menuNiveau0 (id_menuNiv0, id_rubriqueNiv0)
    1 table menuNiveau1(id_menuNiv1, id_rubriqueNiv0, id_rubriqueNiv1)
    ainsi de suite ...
    Dans cette premiere idee, je recupere en premier lieu l'id_rubriqueNiv0 dans la table menuNiveau0, qui constitue la rubrique père (ex : "conception" dans ce forum serait une rubrique père dans mon cas).
    Ensuite, je requette dans la table menuNiveau1 pour savoir si l'identifiant père est présent. Si tel est le cas, alors la rubrique père possède un fils dont je recupère l'identifiant (id_rubriqueNiv1).
    Petit à petit mon menu se construit avec sa filiation.

    Deuxième idée :
    1 table rubrique (id_rubrique, intitule)
    1 table filiation (id_filiation, id_rubrique_pere, id_rubrique_fils)
    Dans cette deuxième idée, je requete sur la table filiation :
    - je recupere les id_rubrique des resultats qui sont orphelins (pas de pere), ce qui me donne les id_rubriques peres.
    - avec ces peres (niveau 0) je requette pour obtenir leur fils direct (niveau 1) puis les fils des fils (niveau 2) ** ...
    Ainsi de suite je construit mon menu.

    Bilan/question :
    La première idée semble plus simple que la deuxième, mais je me demandais si la deuxième idée n'était pas un début de bonne idée (à améliorer).
    De ce fait, je m'en remets à vous pour savoir, si je dois plutôt utiliser la première idée, la deuxième (en l'état ou différemment) ou bien une autre ?

    Merci d'avance pour vos réponses.


    * : le niveau étant l'arborescence, rubrique de niveau 1 -> rubrique de niveau 2 (sous rubrique) ...
    ** : les fils peuvent devenir père à leur tour

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    La deuxième est meilleure.
    Tu trouveras une méthode intéressante dans l'article de SQLPro sur la gestion des arbres par représentation intervallaire.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Juste une réflexion de fonds sur le choix de gérer un menu de site internet dans une base de données.
    Pour séduisante qu'elle soit, cette idée me semble devoir être mise en œuvre avec parcimonie et prudence.

    Pourquoi ?

    Les réponses inversées aux deux questions suivantes ont nourri, depuis longtemps, ma réflexion :
    Qu'y-a-t'il de plus invariant qu'un menu ?
    Qu'y-a-t'il de plus consulté qu'un menu ?

    Est-il bien pertinent, voire raisonnable, de solliciter un SGBDR avec des requêtes (même des prepared statements de PDO) dont les résultats seront sempiternellement les mêmes ?

    Quand on tient absolument à sauvegarder ses items de menu dans une table de base de données, il me semble plus performant de prévoir un script qui régénère un fichier include chaque fois (c'est à dire rarement) qu'une modification (INSERT, UPDATE, DELETE) intervient sur la table, plutôt que de solliciter la base à chaque demande d'affichage du menu.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  4. #4
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 35
    Par défaut
    Merci à vous deux pour la réflexion et l'ouverture d'esprit.

    J'ai commencé à voir la représentation intervalaire, très intéressant.
    Et pour le menu bonne idée aussi que de faire un fichier de type cache pour allèger la charge bdd.

    J'étudie l'approche intervalaire, je passerai résolu sous peu si c'est ok.

    Merci pour vos réponses.

Discussions similaires

  1. site internet : menu
    Par oceane57 dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 02/03/2010, 15h08
  2. probleme d'un menu prit sur internet
    Par amelhog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/05/2005, 13h30
  3. site internet en reseau local
    Par faamugol dans le forum Développement
    Réponses: 3
    Dernier message: 21/10/2004, 17h57
  4. connexion a une base de donnée distante mysql(site internet)
    Par rollernox dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/07/2004, 13h14
  5. Pb de connexion sécurisée pour sites Internet et Intranet
    Par LadyArwen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2003, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo