Je prévois d'utiliser deux tables (à savoir invité et employé) pour contrôler quelle page est disponible pour quel utilisateur.Contrôlez différents niveaux d'accès
L'utilisateur peut s'inscrire à un compte alors que l'employé ne le peut pas. Le compte d'un employé ne peut être attribué que par un administrateur système.
Voici la question que je viens de découvrir:
On suppose UserA est un employé et a « login001 » comme nom d'utilisateur et « password » comme mot de passe.
Maintenant, une supposition vient sur le site Web et applique un nom d'utilisateur avec 'login001' et 'mot de passe' comme mot de passe.
Ensuite, l'utilisateur peut accéder à certains sites Web internes car il a choisi le même nom d'utilisateur/mot de passe que l'un des employés.
Voici ma solution à ce problème:
méthode: A chaque fois qu'un nom d'utilisateur est appliqué (pas d'importance guess ou employé), le seront contrôlés guess table et employé pour vous assurer qu'il n'y a pas double .
Deuxième méthode: Combinez les tables guess et employee ensemble en tant que table de personnes. Cependant, pour guess, le type_utilisateur peut être affecté en tant que GUEST et pour employee, le type_utilisateur peut être affecté en tant que EMPLOYEE.
Je ne sais pas si les méthodes ci-dessus ont un sens ou non. Si ni l'un ni l'autre ne sont de bonnes solutions, donnez-moi une orientation afin que je puisse adopter une bonne pratique. Je n'utilise aucun framework ou OOP pour implémenter mon script PHP.
Merci
Notez que la contrainte unique ne fonctionne que si vous stockez les invités et les employés dans la même table. – jmz
@jmz - Oui, je devrais probablement préciser que l'ajout de la contrainte unique suppose qu'il y a 1 table d'identifiants. –
Bonjour Jones, Sur la base de votre suggestion, je pense que le cadre de la table doit être le suivant code pseudo:
PersonTable { person_id: varchar(20) primary key, credential: employee|guest }
merci – q0987