2008-12-13 9 views
0

J'ai un problème avec une relation plusieurs-à-plusieurs dans mes tableaux, qui est entre un employé et un instructeur qui travaille dans un centre de formation. Je ne peux pas trouver le lien entre eux, et je ne sais pas comment l'obtenir. Les champs employés sont:Aide à la relation plusieurs-à-plusieurs

  • employé no.
  • nom de l'employé
  • nom de la société
  • département titre du poste
  • secteur d'activité
  • numéro de téléphone mobile
  • poste
  • classement

Les champs instructeurs sont

  • nom d'instructeur
  • institut
  • numéro mobile
  • adresse email
  • frais

Répondre

7

dans plusieurs-à-plusieurs relations seront dans une 3ème table, quelque chose comme

table EmployeeInstructor 
    EmployeeID 
    InstructorID 

pour trouver tous les employés pour un instructeur spécifique, vous utiliseriez une jointure contre les trois tables.

+0

merci d'avoir aidé jimmy mais j'ai dit à mon professeur la même chose que vous avez dit qu'elle est comme l'information pour l'employéInstructor les champs dans cette table sont peu j'ai besoin plus de champs –

4

Tout d'abord, vous aurez besoin d'une clé unique dans les deux tableaux. Le numéro d'employé peut fonctionner pour la table d'employé, mais vous aurez besoin d'un autre pour la table d'instructeur. Personnellement, j'ai tendance à utiliser des champs d'identité auto-incrémentés appelés ID dans mes tables. C'est la clé primaire. Ensuite, créez une nouvelle table, InstructorEmployee. Cette table a deux colonnes, InstructorID et EmployeeID. Les deux champs doivent être indexés. Vous pouvez maintenant créer une association entre un employé et un instructeur en créant un enregistrement contenant les deux ID.

5

Ou plus probablement il y aura des classes concernées -

employé prend classe instructeur enseigne classe

de sorte que vous aurez et une table EmployeeClass,
une table InstructorClass,

et rejoindre à travers eux. Et la classe doit être unique, ou bien vous aurez besoin

classe est enseignée dans le quartier sur classeplanifiez

et finissent par se joindre à EmplyeeClassSchedule InstructorClassSchedule.

Cela finit par être l'un de vos concepts relationnels les plus intéressants assez rapidement. Si vous recherchez "Terry Halpin" et "Object Role Modeling" sur google, ceci est utilisé à titre illustratif dans le tutoriel.

+0

ouais, cela fait plus de sens qu'un simple beaucoup/beaucoup relation entre les employés et les instructeurs – Jimmy

+0

+1 pour avoir vu le problème à travers la question! –

+0

Je suis d'avis que vous mentionnez Terry Halpin. J'ai utilisé la fonctionnalité Object Role Modeling de Visio for Architects fournie avec Visual Studio 2005 Architect. Il a fait un travail rapide de création de bases de données à partir des besoins de l'entreprise. – Matthew