2009-04-16 4 views
1

J'ai deux tables: travail avec jobid, Description de l'offre, etc et utilisateur avec userid, jobid, nom, etc.reliant deux tables

Quelle est la meilleure pratique pour relier deux jobid au même userid dans le tableau utilisateur?

Je peux le faire avec une table intermédiaire qui stocke les entrées des travaux du même utilisateur mais je pense que c'est une solution plus élégante.

Merci.

Répondre

7

Trois tableaux - Utilisateurs, Jobs, USERJOBS

table des utilisateurs contient des informations relatives à l'utilisateur

tableau d'emploi décrit les travaux individuels

USERJOBS des actes de table comme un pont entre vos nombreux-to de nombreuses relations utilisant une combinaison PK/FK de UserID/JobID.

Exemple

Users 
UserID Name 
--------------------------------- 
1  Doogie Howser 
2  Steve Urkel 
3  Forest Gump 

Jobs 
JobID JobDescription 
--------------------------------- 
1  TV Character 
2  Movie Character 
3  Nerd 


UserJobs 
UserID JobID 
--------------------------------- 
1  1 
1  3 
2  1 
2  3 
3  2 
0

Je vois que TheTXI vous a déjà donné une bonne réponse, en ajoutant plus à ce qu'il dit: Qu'est-ce que vous avez est un nombre à plusieurs entre utilisateurs < => Emplois. Et chaque fois que vous avez cette situation, vous devrez utiliser une table de mappage qui mappe les utilisateurs et les emplois. Le plus souvent, une table appelée UserJobs serait créée avec une clé composite contenant un jobid et un userid. J'espère que cela pourra aider.

1

Cette relation est appelée many-to-many, et la manière d'y parvenir dans le SGBDR est d'avoir un junction table.

Vous auriez 3 tables:

  • emploijobid (PK), Description de l'offre, etc.
  • utilisateuruserid (PK), nom, etc. (note, pas jobid ici)
  • userjobIDutilisateur, JobId (PK composite des deux)
Questions connexes