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

Merise Discussion :

relation entre la même table(merise).


Sujet :

Merise

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 19
    Points
    19
    Par défaut relation entre la même table(merise).
    Bonjour,

    j'ai un salarie qui peux avoir 1 ou plusieurs règles......est un salarie peut avoir la concaténation de deux règles ou plus.

    ex:
    règle= X affecté au salarie1.
    règle=x1 and règle=y1 affecté au salarie2.
    règle =x1 and règle =y1 and règle=z1 affecté au salarie3.

    j'ai mis pour cela trois tables.

    salaries(id_salarie...ect)
    salarieregle(id_salarie,id_regle)
    regle(id_regle,...ect)

    le problème c'est que la conception répond juste au premier cas et non pas au deux autres.

    Possible de m'aider SVP

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Ben puisque
    un salarie qui peux avoir 1 ou plusieurs règles
    il peut aussi avoir
    deux règles ou plus
    Et ton modèle est bon.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Yquentin et Philippe,

    Citation Envoyé par CinePhil
    Et ton modèle est bon.
    ==> il faut, néanmoins, le compléter par les clés primaires :
    salarie(id_salarie...ect)
    salarieregle(#id_salarie,#id_regle)
    regle(id_regle,...ect)
    car si :
    salarieregle(#id_salarie,#id_regle)
    alors, oui :
    Citation Envoyé par Yquentin
    le problème c'est que la conception répond juste au premier cas et non pas au deux autres.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci pour vos réponses.

    Je vous donne un exemple ou je vais avoir un problème:
    supposons que pour accéder à un dossier, le salarie doit avoir règle=X1.

    et au niveau de la base de donnée, j'ai enregistré un salarie avec la règle suivante:
    règle=x1 and règle=y1 affecté au salarie.
    du coup, ce salarie peut accéder au dossier si il répond aux deux règles à la fois et non pas juste une.

    Concrètement avec ma conception actuelle, ce salarie peut accéder au dossier vu qu'il a règle=X1, alors qu'il doit accéder seulement si il répond aux deux critère en même temps(règle=x1 and règle=y1).
    Je n'arrive pas à mettre cela dans ma conception(c'est avoir lier une règle, et par fois lier deux règles avec and....)

    cordialement.

  5. #5
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Yquentin,

    ... d'où, l'importance de connaître les règles de gestion avant toute analyse...

    Citation Envoyé par Yquentin
    supposons que pour accéder à un dossier, le salarie doit avoir règle=X1.
    ==> il y a donc des règles à associer à des dossiers :
    1 dossier possède 1 ou plusieurs règles (droit d'entrée)
    1 règle peut être définie pour 1 ou plusieurs dossiers
    donnant :
    Dossier(IdDossier, etc...)
    DossierRegle(#IdDossier, #IdRegle, ...)
    D'autre part :
    salarie(id_salarie...ect)
    salarieregle(#id_salarie,#id_regle)
    regle(id_regle,...ect)
    Dans l'application, à chaque demande d'accès à un dossier, il faut vérifier que l'ensemble des règles affectées à un dossier est bien possédé par le salarié qui tente d'y accéder.

    Tout cela, si tu nous as bien tout dit et, dans l'affirmative, si j'ai bien compris...
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci une autre fois,

    En effet, j'ai mis la même chose...donc, ma conception est jusqu'au maintenant correcte.
    Avec cette conception, je peux dire que un salarie peut accèder à un dossier si il à régle1 or régle2..ect

    Toutefois, je ne peux pas affecter à un salarie un dossier, si il a deux règles à la fois, c'est à dire, le salarie peut accéder à un dossier, si il a (régle1=X2 and régle2=Y1).

    mon problème c'est comment associer deux règles à un salarie pour un dossier.....comme j'ai mis dans l'exemple précédent.

    Merci beaucoup pour votre aide.

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Yquentin
    Avec cette conception, je peux dire que un salarie peut accèder à un dossier si il à régle1 or régle2..etc
    Toutefois, je ne peux pas affecter à un salarie un dossier, si il a deux règles à la fois, c'est à dire, le salarie peut accéder à un dossier, si il a (régle1=X2 and régle2=Y1).
    ==> cela dépend de l'application. Il faut créer une fonction avec les paramètres d'entrée {id_salarie, IdDossier} et, si l'ensemble des règles affectées à un dossier est bien possédé par le salarié qui tente d'y accéder, alors retourner une valeur "OK" en sortie (le AND est donc bien possible).
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Bonjour

    Je vous remercie infiniment....je vais essayer de gérer cela dans l'application.
    Je pense qu'il faut utiliser un motor de règle (BRMS).....mais, vu que je travail avec PHP c'est impossible de trouver un motor de règle comme Drools(J2EE).

    Cordialement.

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 799
    Points : 34 046
    Points
    34 046
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par yquentin Voir le message
    Toutefois, je ne peux pas affecter à un salarie un dossier, si il a deux règles à la fois, c'est à dire, le salarie peut accéder à un dossier, si il a (régle1=X2 and régle2=Y1).

    mon problème c'est comment associer deux règles à un salarie pour un dossier.....comme j'ai mis dans l'exemple précédent.
    salarieregle(#id_salarie,#id_regle)
    1, 1
    1, 2
    2, 1
    => Le salarié 1 est muni des règles 1 et 2 mais le salarié 2 n'est muni que de la règle 1.

    DossierRegle(#IdDossier, #IdRegle, ...)
    1, 1
    1, 2
    => Le dossier 1 est muni des règles 1 et 2

    Quels salariés ont toutes les règles nécessitées par le dossier 1 ?
    Cette requête, peut-être simplifiable (j'ai les neurones un peu affaiblies par un crobe en ce moment), devrait faire l'affaire :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT id_salarie
    FROM salarieregle sr
    INNER JOIN dossierregle dr ON dr.idregle = sr.id_regle
    WHERE dr.iddossier = 1
    GROUP BY id_salarie
    HAVING COUNT(DISTINCT sr.id_regle) =
    	(
    		SELECT COUNT(*)
    		FROM dossierregle
    		WHERE iddossier = 1
    	)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Doctrine] 2 relations vers la même table
    Par Kefass dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 05/02/2010, 11h59
  2. [AC-2003] Relations multiples entre deux mêmes tables
    Par DuracellSubaquatique dans le forum Modélisation
    Réponses: 8
    Dernier message: 04/08/2009, 08h57
  3. Réponses: 0
    Dernier message: 23/07/2009, 15h45
  4. les types de relations entre de 2 tables
    Par adel.87 dans le forum Développement
    Réponses: 3
    Dernier message: 30/09/2008, 12h16
  5. Relation dans une même table
    Par Ylias dans le forum JPA
    Réponses: 5
    Dernier message: 29/05/2008, 10h36

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