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 :

Base de données avec identification d'utilisateur


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 13
    Points : 19
    Points
    19
    Par défaut Base de données avec identification d'utilisateur
    Bonjour,

    Je suis en train de réaliser une base de données et une IHM en php mysql.
    J'ai en gros une table utilisateur, une table projet et une table détail projet.

    Mes utilisateurs n'auront pas forcément tous les mêmes droites sur mes données dans mes tables projet et detail projet.
    J'ai donc ajout à ma table utilisateur un statut d'utilisateur.
    Je voudrai pourvoir sélectionner dans ma table projet et détail projet les utilisateur qui pourront interagir sur mes lignes de données dans ces deux tables. Je voudrai sélectionner les utilisateurs soit par leur statut, commun à un groupe de personnes, soit en sélectionnant individuellement les personnes.

    Le problème c'est que je sais pas trop comment modéliser ça. Faut-il que je lie mes deux tables projet et detail projet à ma table utilisateur, ou que je crée un table de liaison entre elles?

    Une autres question qui je pense va vous paraitre évidente mais qui ne l'ai pas pour moi.
    Comment connaitre l'identification d'un utilisateur durant tout le temps où il est connecté à la base?
    Quand il se connecte via la page de connexion avec son login et son mot de passe.
    Comment dois-je faire pour stocker son id pour pouvoir le réutiliser sur toutes les pages où il se déplacera.

    Merci d'avance pour vos réponses.
    Cordialement,

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 13
    Points : 19
    Points
    19
    Par défaut
    Bon j'ai trouvé pour le stockage de mon identifiant utilisateur, il faut utiliser les sessions.

  3. #3
    Membre émérite
    Avatar de Nothus
    Homme Profil pro
    aucun
    Inscrit en
    Juillet 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : aucun
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 200
    Points : 2 575
    Points
    2 575
    Billets dans le blog
    27
    Par défaut
    Citation Envoyé par EpicSaxGuy Voir le message
    Le problème c'est que je sais pas trop comment modéliser ça. Faut-il que je lie mes deux tables projet et detail projet à ma table utilisateur, ou que je crée un table de liaison entre elles?
    Tu as plusieurs possibilités. Soit tu crées des groupes : chaque groupe a la possibilité de réaliser ou non des actions. Les membres des groupes héritent des possibilités et des autorisations.

    Soit tu associes chaque type de droit à un utilisateur (ajout d'un détail, ajout d'un projet, modification, etc.). C'est pas forcément nécessaire si ton projet n'a pas besoin d'autant de précision.

    Soit tu gères en fonction des projets : une table de "jointure" entre ta table projet et ta table utilisateur donne les droits. En somme, s'il existe l'ID utilisateur et l'ID projet dans la table de jointure pour le même enregistrement, alors ton utilisateur peut gérer le projet.

    Reste à savoir EXACTEMENT ce que tu veux faire, avant de te lancer dans la construction de tes tables.
    "En dehors des langages de la famille LISP et du modèle RDF, point de salut."

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 13
    Points : 19
    Points
    19
    Par défaut
    Merci pour ta réponse Nothus

    C'est ça le souci c'est que je voudrai qu'on puisse sélectionner soit un utilisateur, soit un groupe d'utilisateur.
    Donc je pense que je vais opter pour la table de liaison qui prend l'id du projet et l'id de l'utilisateur. Quand je sélectionnerai pas statut il faudra que j'ajoute les id de chaque utilisateur qui ont le même statut.
    Mais du coup si je fais ma table va pas prendre des proportions énormes?
    Faut-il que je crée une table identique entre utilisateur et détail projet ou que j'utilise la même table entre projet, détail projet et utilisateurs?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 13
    Points : 19
    Points
    19
    Par défaut
    J'ai fait une modélisation de ce que je pense faire, je pense que ça pourrait répondre à mes besoins.
    Nom : Capture.JPG
Affichages : 111
Taille : 46,2 Ko
    Qu'en pensez vous?

  6. #6
    Membre émérite
    Avatar de Nothus
    Homme Profil pro
    aucun
    Inscrit en
    Juillet 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : aucun
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 200
    Points : 2 575
    Points
    2 575
    Billets dans le blog
    27
    Par défaut
    Mouai. Pas convaincu (mais je ne suis pas celui qu'il faut convaincre ! )

    Déjà tu as un problème, tu as une boucle étrange : si ta liaison PU n'est pas conforme à la liaison PS, alors tu as un problème. Ainsi, un propriétaire de projet, peut-il perdre définitivement ses droits ?

    Si tu as un 1,1 entre Projet et Utilisateur, alors vire la table de liaison PU, car elle est inutile. Rajoute un champ "projet_utilisateur_id" dans Projet, qui sera tout aussi efficace.

    Déjà, ça t'évite cet effet de boucle. Et puis c'est plus joli. Et pratique. Et puis c'est comme ça, je suis contre les tables inutiles ^^

    Tu as aussi un problème entre Utilisateur et Statut : il manque une table entre les deux, pour la liaison, qui n'est pas 1,1 ici. Tu ne peux pas définir un groupe, que celui puisse avoir 0 à N utilisateurs, et définir en même temps les utilisateurs qui le composent, du moins sans certains artifices !

    Ta liaison PS fait finalement bien le lien, mais je pense que la contrainte 1,1 pour la table PS est trop forte. 1,N (pourquoi un seul groupe ? A ce moment-là, le concept est mal défini. Si tu passes par des groupes, laisse cette liberté).

    Attention, car je ne vois à aucun moment la définition concrète des droits de l'utilisateur (du moins du groupe) sur les projets.

    Globalement donc (désolé) :
    - définir avant tout chose ce que tu souhaites faire.
    - ton projet de tables n'est pas abouti et pas opérationnel,
    - tu dois reprendre la doc pour t'imprégner de l'essence de ce que sont les liaisons.
    "En dehors des langages de la famille LISP et du modèle RDF, point de salut."

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 13
    Points : 19
    Points
    19
    Par défaut
    Bonjour Nothus, et merci pour ta réponse. Effectivement je n'avais pas vu tous les défauts de cette modélisation.

    Par contre entre Utilisateur et Projet la liaison est n-n et pas 1-1.

    Je vais corriger ça.

Discussions similaires

  1. meilleure base de données avec java
    Par mial dans le forum JDBC
    Réponses: 11
    Dernier message: 10/11/2010, 11h49
  2. Modélisation base de données avec visio
    Par BIDA dans le forum Visio
    Réponses: 3
    Dernier message: 07/08/2007, 13h31
  3. Récupérer ma base de donnée avec des tables en .frm uniqueme
    Par Michas dans le forum Administration
    Réponses: 5
    Dernier message: 31/08/2005, 13h57
  4. création base de données avec easyphp
    Par Battosaiii dans le forum Débuter
    Réponses: 5
    Dernier message: 29/06/2004, 18h50
  5. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2003, 10h12

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