2010-01-25 7 views
1

Mon doute est sur la façon de traiter la chose suivante:MySQL base sur la relation

J'ai un système dans lequel un utilisateur appartient à une entreprise, et cet utilisateur ont leurs clients.

Comment est la bonne façon d'obtenir une liste de tous les clients de l'entreprise et le nom d'utilisateur suivi ??

Dans le tableau client où j'ai un champ avec l'un de ces relations:

  • A company_id et sur le terrain user_id
  • Juste champ company_id
  • table utilisateur cause champ juste user_id ont le company_id? ??
  • Quelque chose d'autre ...

tkz Roberto

+0

Nous avons besoin d'informations plus précises. Par exemple, un client peut-il être un client de plus d'un utilisateur? Un client peut-il être client de plus d'une entreprise? Le même utilisateur peut-il travailler pour plus d'une entreprise? Et si oui, ont-ils deux listes distinctes de clients, ou la même liste de clients dans les deux entreprises? –

Répondre

0

Vous pouvez utiliser une instruction select

SELECT company_id,user_id FROM client; 
+0

Mais quelle est la bonne façon de construire la table? Quel index étranger je mets dans la table client ?? – Roberto

1

relations Tableaux:
client (FK_companyId, FK_USERID). "utilisez FK_companyId uniquement si vous avez plusieurs sociétés"
Utilisateur (FK_companyId).
société (PAS de clés étrangères pour le client ou l'utilisateur).

s'il n'y a qu'une seule entreprise dans le système, vous n'avez pas besoin de l'inclure dans la relation:

SELECT clientInfo FROM client where userId=userSessionId;

si vous avez multi-entreprises alors:
SELECT client.clientInfo,client.companyId,company.companyInfo FROM client left join company on (client.companyId = company.Id) where userId=userSessionId;

Remarque: la jointure gauche est utilisée pour obtenir les "informations sur la société" si elle est disponible, mais tous les clients utilisateurs liés à cette société particulière seront récupérés.

Enfin: Si une information client peut être gérée par des utilisateurs mutli, vous ne devez pas lier/coupler les deux entités ensemble.

BTW: votre anglais est horrible!

+0

Vous devriez être plus prudent avec vos accusations, parce que votre anglais n'est pas beaucoup mieux. "S'il n'y a qu'une entreprise", "un utilisateur qui appartient", "si vous êtes multi-entreprises", ... –

+0

mec, posant une question pas comme y répondre !! tout en répondant je me soucie plus d'obtenir la réponse à la question dès que possible. mais si la question est mal écrite, beaucoup de gens l'ignoreront ou hésiteront à y répondre. de toute façon merci de corriger ma syntaxe seconde langue :) –

+0

tkz pour l'info ... mon anglais est horrible mais c'est mieux que rien ... vous m'avez compris ... quel est le but;) tkz encore et tkz Tom! – Roberto