60 votes

Conception de la base de données : 3 types d'utilisateurs, séparés ou une seule table ?

J'ai 3 types d'utilisateurs :

  • Administrateurs
  • Fournisseurs
  • Des employés

Chaque type d'utilisateur aura une interface utilisateur différente et accédera à différents types de données. Leur seule similitude est qu'ils utilisent une seule application Web mais qu'ils accèdent à des choses totalement différentes. Est-il préférable de les mettre tous dans une seule table utilisateur comme tbl_users ou est-il préférable de créer tbl_admins, tbl_suppliers, tbl_employees ?

20voto

dasblinkenlight Points 264350

Il y a aussi un troisième choix : mettre les colonnes que tous les utilisateurs ont en commun dans tbl_users , et créer trois tables pour tbl_admins , tbl_suppliers et tbl_employees joignant à tbl_users comme 1 à 0..1. Vous devez considérer ce choix comme une alternative lorsque le nombre de colonnes partagées est important.

3voto

BryceAtNetwork23 Points 5053

Cela dépend de la similitude de leurs structures de données. S'ils sont similaires, vous pourriez peut-être les mettre tous dans un seul tableau. Mais, s'ils ont beaucoup de champs différents et que vous vous retrouvez avec beaucoup de valeurs NULL... et alors il vaut mieux qu'ils soient tous dans des tables séparées.

1voto

pjbrown88 Points 40

Il est préférable de conserver toutes vos informations de connexion au même endroit. Si jamais vous deviez modifier votre processus de connexion, avoir 3 tables différentes signifierait devoir changer le code à 3 endroits distincts.

Si un utilisateur peut appartenir à plusieurs rôles, envisagez de créer une table UserRoles. Sinon, l'ajout d'un champ supplémentaire à la table existante - tel que RoleType - aiderait à différencier les différents types d'utilisateurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X