L'utilisateur, le client, le compte admin dans 3 tables différentes?
Dans mon application web, je vais avoir trois types de comptes.
- Utilisateur: pour l'utilisation de l'application web pour gratuit
- De la clientèle: pour de la publicité et de l'obtention du Logo de l'Entreprise
- Admin: pour l'édition et la suppression des trucs
Si toutes ces trois être dans des tableaux ou dans l'une avec une colonne nommée "account_type" où je peux le marquer en tant qu'Utilisateur, d'un Client ou Admin?
Quels sont les avantages et les inconvénients pour les deux? Quelle est la meilleure pratique pour cela?
Grâce
Je pense qu'il serait utile de rester à la façon dont les cas d'utilisation se rapportent à d'autres choses dans votre modèle de données. I. e. quel est le lien entre le Client et les Images, l'Utilisateur/Admin comme l'accès.
Je dirais une table, mais si il ya beaucoup de différents attributs pour chaque rôle, vous devriez penser à différentes tables. Vous pouvez marquer l'utilisateur avec un identifiant/enum, appelons-le rôle. rôle=1 serait un utilisateur, rôle=2 serait un client et le rôle=3 serait un admin. Donc, vous pouvez facilement étendre votre rôles avec une clé étrangère construire (comme David Stratton a dit).
Je dirais une table, mais si il ya beaucoup de différents attributs pour chaque rôle, vous devriez penser à différentes tables. Vous pouvez marquer l'utilisateur avec un identifiant/enum, appelons-le rôle. rôle=1 serait un utilisateur, rôle=2 serait un client et le rôle=3 serait un admin. Donc, vous pouvez facilement étendre votre rôles avec une clé étrangère construire (comme David Stratton a dit).
OriginalL'auteur never_had_a_name | 2010-08-18
Vous devez vous connecter pour publier un commentaire.
En général, un
person
peut être de l'utilisateur, le client et admin -- donc, je voudrais commencer par unePerson
table avec des colonnesIsCustomer
,IsUser
,IsAdmin
. Plus tard (pour la recherche rapide) vous pouvez décider d'ajouter des tables séparéesAdmin
,Customers
,Users
avec FK à laPerson
table.EDIT:
Un cas typique peut être:
En général, avoir des tables séparées pour les clients et les admins devrait accélérer n'importe quel admin/client requête relative.
OriginalL'auteur Damir Sudarevic
Si un utilisateur ne peut être un type, vous seriez mieux avec une table et un champ de bits pour IsAdministrator, etc.
Si un utilisateur peut être de plus d'un type de compte, vous devriez avoir une autre table avec une clé étrangère,
structure d'échantillon (données sypes sont SQL Server et proposé uniquement)
Table des utilisateurs
Tableau des rôles
User_Roles table
Oui, on le savait déjà,
Je pensais que vous vouliez dire un tableau pour les administrateurs et l'autre pour les custmers avec toutes les répéter info. J'ai lu qu'il est mauvais, n'ai-je pas?
OriginalL'auteur David
Avantages et les Inconvénients varient en fonction de la taille et de la complexité de votre système.
Je voudrais diviser en Utilisateur, Rôle, UserResources
OriginalL'auteur Nix