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

Langage SQL Discussion :

Système de rang difficulté de conception


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Points : 11
    Points
    11
    Par défaut Système de rang difficulté de conception
    Bonjour à tous,

    Je suis en train de développer un plugin sous GLPI : le TaskMaker.
    Je vous explique un peu le principe, dans ce logiciel de gestion, un utilisateur peut créer un ticket pour reporter un incident ou faire une demande.
    Dans ces tickets, on peut créer des tâches et un suivi de tâches qui permettent de voir l'évolution de la résolution de l'incident, ou l'évolution de la demande.

    Nom : Capture.PNG
Affichages : 460
Taille : 78,9 Ko

    Le but de mon plugin est de pouvoir ajouter des tâches à des modèles de ticket et non à des tickets, comme ça dès qu'un utilisateur crée un ticket, le système vérifie si ce ticket est lié à un modèle de ticket, et si oui, il copie les tâches du modèles vers le ticket.
    Les techniciens ne sont donc plus obligés de créer à chaque fois des tâches qui peuvent être récurrentes, ils les créent une fois, et le système se débrouille pour les assigner à chaque fois.

    Déjà, si vous suivez encore, bravo ! Vous avez le droit de passer à la deuxième étape avec un petit diagramme de la base de données qui paraîtra plus clair (ou pas) :

    Nom : taskmaker DataBase diagramm (after)(NEW).PNG
Affichages : 1011
Taille : 146,4 Ko

    Le problème est que je dois maintenant gérer l'ordre des tâches: le technicien en créant les différentes tâches, peut cliquer sur les petites flèches vertes, et il monte ou descend une tâche.

    Nom : Capture2.PNG
Affichages : 419
Taille : 55,4 Ko

    Je me suis donc dis, ça va pas être très propre mais bon j'ai pas envie de me casser la tête, on va faire ça en base de données!
    Je vais ajouter un champ à la table glpi_plugin_taskmaker_tasktemplates_tickettemplates que je vais appeler 'rank' (là je sens que je vais me faire insulter...).

    Jusque là tout va bien, a chaque clique une petite requête monte ou descend les tâches.

    Vous suivez toujours ? Tant mieux. On arrive à ce qui me pose problème...
    Les GROUPES DE TACHES! (grouptasktemplates)
    En effet, on peut également créer des groupes de tâches qui sont définis par un nom et une description.
    On peut alors ajouter des tâches dans ces groupes, mais là également il faut gérer l'ordre..
    Gérer l'ordre dans le groupe n'est pas un soucis, il suffirait de rajouter un champ 'rank' à la table 'glpi_plugin_taskmaker_tasktemplates_grouptasktemplates' et de suivre le même principe que précédemment.
    MAIS au niveau de l'affichage je souhaite (mon responsable de stage souhaite) que les tâches assignées à un gabarit de ticket s'affichent dans le même tableau que les groupes, et qu'ils puissent y avoir :
    tache 1
    tache 2
    tache 3
    groupe de tache 1
    tache 4

    et non :
    tache 1
    tache 2
    tache 3
    tache 1 du groupe 1
    tache 2 du groupe 1
    tache 4

    Je ne vois pas comment gérer l'ordre des groupes en même temps que celui des tâches...
    J'ai bien pensé à un
    SELECT mes tâches..
    UNION
    SELECT mes groupes de tâches...
    ORDER BY rank
    mais les champs d'une tâches et d'un groupe sont différents..

    Si vous avez une idée, que ce soit en base de donnée, ou autrement je suis preneur ! (je sens que l'on va me proposer de passer par une structure de données JSON (js), ou autre, alors n'hésitez pas à donner quelques explications avec vos propositions. Je me débrouille pas trop mal en javascript).
    Merci d'avance et bonne journée!

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 059
    Points : 38 269
    Points
    38 269
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    les attributs d'un groupe étant différents de ceux des taches qui le constitue, la solution n'est pas SQL mais applicative, une requête select ne peut que rapporter des lignes homogènes

    Sinon ça doit être un vrai plaisir de coder des requetes avec des noms de table à ralonge comme "'glpi_plugin_taskmaker_tasktemplates_grouptasktemplates" !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Bonjour escartefigue,
    Je te le fait pas dire; vive les conventions de nommage !
    Je viens de voir que je pouvais faire quelques choses comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    (
        SELECT
            'tache' AS TouG,
            id_tache AS id,
            nom_tache AS nom,
            rank_tache AS rank,
            valeur_tache_specifique AS tache_spec,
            NULL AS groupe_spec
        FROM taches ...
     
        UNION
     
        SELECT
            'groupe' AS TouG,
            id_groupe AS id,
            nom_groupe AS nom,
            rank_groupe AS rank,
            NULL AS tache_spec,
            valeur_groupe_specifique AS groupe_spec
        FROM groupes ...
    )
    ORDER BY rank
    Je vais tester, et je reviens vers vous.
    Merci de prendre le temps de me répondre Bonne journée.

Discussions similaires

  1. Difficulté à la conception de tables
    Par Ryu007 dans le forum Requêtes
    Réponses: 35
    Dernier message: 17/08/2007, 09h57
  2. Système de caméra, soucis de conception
    Par mister3957 dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 29/05/2007, 18h11
  3. [MySQL] Système de rangs unifié
    Par Metzgermeister dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 25/01/2006, 16h35

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