2011-03-16 4 views
3

Possible en double:
MongoDB Many-to-Many AssociationComment construire des relations ManyToMany dans Mongodb?

Je l'ai utilisé MySQL/SQLite depuis des années et de la difficulté à obtenir ma tête réelle autour de la façon de faire des relations dans MongoDB, en particulier les relations ManyToMany, je viens Je ne sais pas quelle est la meilleure pratique. J'ai un projet avec un company. Un employee peut fonctionner pour plusieurs entreprises, et une entreprise peut avoir plusieurs employés. La table de jointure s'appelle contracts.

-à-dire: company -<contracts>- employees

champs.

société: id, nom

contrats: durée, salaire, company_id, employee_id

employé: id, nom

Mon application finale réelle a plus de 20 champs pour chaque table, mais Je l'ai gardé simple pour le moment.

C'est là que ma tête commence à faire mal lorsque j'essaie de reproduire cela dans Mongodb.

ie;

// Idea 1. Put everything in one hierarchy. 
// But, What should I be putting in contracts? 
// Where does employees go? 
// 
// Pseduocode (based from MongoDB online browser shell) 
var company = {name:'Company A', contracts:[????]}; 

Le problème est, si un employé peut travailler pour 3 entreprises différentes. Je vais répéter le contenu des employés 3 fois pour chaque entreprise pour laquelle il travaille. Donc, pour réduire la quantité de contenu en double, il faudrait que je sépare les documents des entreprises, des employés et des contrats, est-ce exact?

Si je les sépare, comment faire les jointures, et où?

Serait-ce un cas de stockage de l'ID unique vraiment long que MongoDB génère pour chaque ligne/article dans mon document d'entreprise?

Et si oui, comment récupérer mes affaires?

i.e: Imprime une liste de tous les employés travaillant pour 1 entreprise ayant un contrat de moins de 10 semaines. Comme vous pouvez le voir, je suis toujours un peu en difficulté avec MongoDB, et je pense encore à un type de SQL, mais j'espère que quelqu'un peut aider à au moins pointant dans la bonne direction en termes de la façon de gérer, et les meilleures pratiques pour les relations ManyToMany dans MongoDB.

Merci.

+1

c'est une dupe. Répéter les mêmes réponses n'est pas utile ici. –

+0

Désolé pour ça. – zardon

Répondre

Questions connexes