2009-02-12 11 views
3

va maintenant mon site pour commencer à permettre à deux différents types d'utilisateurs pour vous inscrire ...Comment gérer différents types d'utilisateurs?

  1. gens normaux
  2. des entreprises

les deux seront en mesure de faire toutes les mêmes choses sur le site, mais leurs profils seront différents, et je suis sûr qu'ils voudront stocker différents types d'informations sur eux-mêmes.

ma question est: dois-je les stocker sur des tables mysql distinctes? ou ... devrais-je les mettre sur 1 et les étiqueter comme "utilisateur" ou "société"?

Je pourrais vraiment utiliser votre entrée pour me aider à éviter les pièges avec soit ...

merci!

Répondre

8

This link explique quelques meilleures pratiques de base de données.

Je créerais une table "Accounts" avec un UID, avec des informations communes entre les deux stockées là, et quel type de compte il est.

Puis une table "Entreprises" avec des informations spécifiques à l'entreprise, en utilisant le même UID que le compte, et, je ne sais pas, une table "Utilisateurs" avec des informations spécifiques aux utilisateurs.

Cela vous évite d'avoir à créer deux tables très similaires, avec des colonnes inutilisées ou des données en double.

Comme ceci:

Accounts 
UID|UserName|Password|Account Type 

Companies 
UID|Company Name|Address|Contact Person 

Users 
UID|First Name|Last Name|Display Name 
+0

c'est une installation cool ... donc, fondamentalement, juste un tableau d'informations utilisateur BASIC et les tables péririferal (orthographe?) Pour compléter le type d'utilisateur. LIKE IT – johnnietheblack

+0

Jésus, je ne sais pas pourquoi je ne vois pas ça avant ... mais im faire maintenant ... cartwheels im un geek pour plus d'informations organisée ... MERCI – johnnietheblack

+0

Pas de problème, et oui, je me souviens comme c'était cool quand il a d'abord cliqué pour moi aussi. :) –

1

Ne les mettez pas dans les tableaux complètement séparés ou bien vous devez rechercher les noms d'utilisateur, détails du compte dans 2 endroits différents, vous donnant si des déclarations partout. Ensuite, vous aurez un temps passé à essayer de faire l'intégrité référentielle et d'essayer de faire référence à la table "orders" à un utilisateur ou à une table client. Soit mettre des informations partagées dans une table et mettre des choses spécifiques dans des tables supplémentaires ou tout mettre dans une grande table.

Questions connexes