Bonjour,
Tout d'abord, sachez que ce message est la suite du fil : http://www.developpez.net/forums/d77...e/#post4470100
Le soucis concerne un héritage de login pour deux types d'utilisateurs. les admins, et les utilisateurs. Je vous copie-colle les explications extraites du fil de la rubrique MySQL.
La vraie question, c'est la deuxième citation, la première est l'explication de l'environnement ^^.
Il existe 2 types de membres :
- les administrateurs, qui ont des droits d'administration
- les utilisateurs, dont l'utilité est uniquement qu'ils soient reconnus a chaque visite.
Pour modéliser cet héritage, voici l'état de mes tables (sous MySQL, moteur InnoDB) :
Il existe encore des relations entre les types d'admins, etc. mais je ne les met pas pour ne pas embrouiller l'histoire.membres
---------------
mailMembre
identifiantMembre
motDePasseMembre
administrateurs (hérite de membres)
-----------------
A_mailMembre
A_idTypeAdministrateur
utilisateurs (hérite de membres)
-----------
U_idMembre
U_idClient
J'exploite ma base avec du PHP. Pour identifier un utilisateur, j'ai deux choix, soit j'ai un panneau de login admin, soit un panneau de login pour les simples utilisateurs (sur des accès bien distincts).
J'aimerai créer un panneau de login pour les 2.D'avance merci pour vos suggestions.J'ai autant de classes que de tables, donc une classe membres avec les mêmes propriétés, une classe administrateurs, et une classe utilisateurs qui héritent toutes les deux de membres
Au moment du login, je cree une instance membre puis j'appelle sa méthode Membre::verifierLogin(string identifiant,string motDePasse), le soucis, c'est que je ne vais pas pouvoir "transformer" mon objet membre en objet administrateur ou utilisateur. Je vais devoir créer une nouvelle instance dans ma classe membre de l'un ou l'autre en fonction du resultat.
Ce qui fait que dans une classe mère , je reinstancie ses propres enfants, au lieu d'instancier les enfants directement.
S'il n'y a pas de moyen de faire plus propre, je ferai comme ça, c'est pas si terrible, mais si vous avez une idée pour contourner, je suis preneur.
Partager