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

PHP & Base de données Discussion :

Gestion des priorités sur les champs d'une table


Sujet :

PHP & Base de données

  1. #1
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 218
    Points : 1 437
    Points
    1 437
    Par défaut Gestion des priorités sur les champs d'une table
    Bonjour,

    J'essaie de modéliser un système où chaque utilisateur d'une base MySql n'a pas la même priorité sur chaque champ des tables de la base. Une modification du contenu de chaque champ doit être vérifié avant d'opérer, l'ajout d'un nouvel enregistrement n'est pas un problème.

    Je code ce système sous PHP bien évidemment.

    Avez-vous déjà eu à gérer ça?

    Actuellement, mon modèle est une table ayant comme enregistrement nom_table-nom_colonne-ordre_priorite de chaque champ des tables concernées, la colonne ordre_priorite est une chaine contenant les ID (clés primaires) de chaque utilisateur par ordre de priorité ex: 2,23,1,45. Cette chaîne sera "explodé" à l'utilisation.
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Points : 208
    Points
    208
    Par défaut
    Bonjour randriano,

    ton sujet m'évoque les réflexions ou questions suivantes :

    1. Qu'entend tu par priorité ? veux tu dire que si l'utilisateur x est moins prioritaire que y et que x essaye de modifier un record après y le système refuse ?
    2. La liste ordonnée de priorité est-elle différente pour chaque champs de chaque table ?
    3. Si c'est ça que fera tu quand un utilisateur est nouveau ou change simplement de priorité ? modifier tous les enregistrements concernant toutes les tables ?
    4. Mettre une chaîne de caractère contenant des id dans une colonne d'une table ne me paraît pas du tout une bonne idée : comment faire des requêtes efficaces avec ça ?


    Perso, tout ça me paraît bien compliqué et difficile à gérer.
    Voici des éléments de base sur les droits d'accès :

    Notion de groupe
    En général, l'idée de priorité est liée à un droit utilisateur, et la première chose qu'on fait, c'est d'identifier les catégories de personnes qui auront les mêmes droits que l'on réparti en "groupes" (groupe admin, utilisateur interne, utilisateur externe, invité etc..).

    ça, ça permet de ne pas refaire des droits à chaque fois qu'une nouvelle personne est ajoutée, et ça permet de renseigner les droit, même s'il n'y a pas encore d'utilisateur pour un groupe.
    Notion de contrôle d'accès et de liste de contrôle d'accès
    On défini ensuite une liste de fonctionnalités autorisées.
    C'est plutôt à ce niveau que ton code PHP doit intervenir en définissant pourquoi l'utilisateur d'un groupe ne peut pas modifier un élément, et donc faire un update de 1 ou plusieurs tables dans la base. Les principe est de diminuer les règles de priorité : au lieu de raisonner en table champs colonne, raisonnons en : l'utilisateur x qui est un membre du groupe "élèves" ne peut pas modifier son sujet de stage ni les dates de ce stage si un membre du groupe "professeur" a déjà mis le stage à l'état "pris en charge".
    par contre, si il est en train de créer son dossier, rien n'empêche qu'il le modifie tant que personne du groupe "professeur ne l'a pris en charge ou si on lui a remis ce stage par un statut "à compléter".

    Ceci permet de gérer plus finement les droits, par exemple, le professeur A, qui a les mêmes droits que le professeur B, ne pourra plus mettre à l'état "pris en charge" un dossier "validé" par son collègue B, l'inverse étant aussi vrai. Seul un membre du groupe "admin" dans le cadre d'un dépannage, peut faire cette action.

    En effet, je ne connais pas d'exemple, à par dans la gestion même d'une base de données où on ait besoin d'intervenir à la colonne prêt pour gérer des droits d'accès, il vaut mieux, à mon sens raisonner avec ce système de groupes et de droits d'accès à une fonctionnalité en tenant compte des états du système.

    Cordialement

  3. #3
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 218
    Points : 1 437
    Points
    1 437
    Par défaut
    En réponse à la liste:
    1. Oui c'est ça: x essaye de modifier un record après y le système refuse
    2. La liste ordonnée de priorité est différente pour chaque champs de chaque table
    3. Pour un nouveau utilisateur, il faut effectivement effectuer un changement dans la table des priorités
    4. Chaîne d'ID: c'est le mieux que j'ai pu trouver pour modéliser l'ordre des priorités.

    Je lis soigneusement tes commentaires ...
    randriano.dvp.com
    Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/02/2014, 15h22
  2. Calcul sur les champs d'une table
    Par cvfe13 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 20/03/2012, 15h59
  3. [AC-2007] Faire des liens entre les champs d'une table.
    Par maxime42 dans le forum Access
    Réponses: 3
    Dernier message: 26/04/2011, 22h23
  4. index sur les champs d'une table de liaison
    Par katosix dans le forum Débuter
    Réponses: 1
    Dernier message: 17/08/2010, 08h44
  5. requete ajout caractere sur tous les champs d'une table
    Par lorenzo74 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/06/2006, 13h34

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