2017-08-13 4 views
0

Je tables comme celui-ciCheck 3 table à partir de la base de données tout conservé les informations de chaque table pour la forme login Authentifier php

employé

Id | IdEmployee | Employee | Address  | Phone_num | 
1 | EM10000  | Jack | wall st. | 9000010 | 
2 | EM10001  | Paul | elm st.  | 9000010 | 
3 | EM10002  | George | ex st . | 9000010 | 

Technicien

id | IdTech  | TechName | Address  | phone_num | 
1 | TE10000  | Gabut | Hello st. | 9000010 | 
2 | TE10001  | Polnaref | coding st. | 9000010 | 
3 | TE10002  | Rafioli | stack st. | 9000010 | 

Admin

id | IdAdmin  | username | password  | phone_num | 
1 | AM10000  | sim1 | 1234   | 9000010 | 
2 | AM10001  | sim2 | luvcoding | 9000010 | 
3 | AM10002  | sim3 | okaymate  | 9000010 | 

Comment puis-je faire le tableau Technicien et employés devenir un utilisateur aussi, afin qu'ils puissent utiliser leurs informations nom d'utilisateur dans un formulaire de connexion? De plus, je veux chaque Id (pas l'ID "AutoIncrement") de Technicien et Employé deviendrait le nom d'utilisateur.

Comment gérer la base de données comme ça?

ou devrais-je ajouter une colonne de mot de passe dans les deux tables? (Employé et technicien)

ou devrais-je créer une table comme celle-ci?

(nouveau) Administrateur

id | Id   | username | password  | phone_num | 
1 | AM10000  | sim1 | 1234   | 9000010 | 
2 | AM10001  | sim2 | luvcoding | 9000010 | 
3 | AM10002  | sim3 | okaymate  | 9000010 | 
4 | AM10003  | EM10000 | test1  | NULL  | 
5 | AM10004  | EM10001 | test2  | NULL  | 
6 | AM10005  | EM10002 | test3  | NULL  | 
7 | AM10006  | TE10000 | 1234   | NULL  | 
8 | AM10007  | TE10001 | ok123  | NULL  | 

Il n'y a pas de relation entre technicien et les employés (tableau autonome)

Répondre

1

Dans votre cas, vous seriez mieux faire vos tableaux sous forme de normalisation comme suit:

employés

IdEmployee | Employee | Address  | Phone_num 
EM10000  | Jack | wall st. | 9000010 
EM10001  | Paul | elm st.  | 9000010 
EM10002  | George | ex st . | 9000010 

techniciens

IdEmployee | TechName 
TE10000 | Gabut 
TE10001 | Polnaref 

Admins

IdEmployee | Password 
TE10001  | hashed_pass1 
EM10002  | hashed_pass2 

Cela fait que vous avez pas de données répliquées et garantit vous pouvez associer des tables correctement à l'aide des clés étrangères.

Donc, si votre administrateur a IdAdmin « EM10002 », pour obtenir le mot de passe de l'employé avec la requête suivante:

// Will return a row with EM10002's password, which is 'hashed_pass2'. 
SELECT Password from Admins WHERE IdEmployee = EM10002 

Voici un autre exemple d'utilisation foreign key. Pour comprendre la normalisation plus, regardez this thread.

+0

Pourquoi la table Technician a-t-elle IdEmployee? – Gagantous

+0

@gagantous Je suppose que vous voulez inclure vos techniciens en tant qu'employés?Si l'ID employé est connecté à son ID technique, vous pouvez accéder à ses informations dans la table Employés. Donc, si vous voulez trouver l'adresse de Tech ID 'TE10000', l'identifiant de l'employé connecté à l'identifiant technique vous permettra d'accéder à son adresse. Considérez l'ID employé le lien vers votre tableau Employés. – MinistryofChaps

+0

désolé, je voudrais changer ma description, car le technicien et l'employé sont des tables différentes qui n'avaient pas de relation (table autonome). Donc, ils ont seulement eu une relation avec la table d'administration @MinistryofChaps – Gagantous