2015-06-29 40 views
1

我想創建一個系統,其中可以創建屬於不同用戶的多個合同。在Meteor創建多個用戶合同

在Django,Ruby等,我會創建一個模型Contract與字段user = models.ForeignKey(settings.AUTH_USER_MODEL)但我不知道如何在Meteor做到這一點。

是更好地做一個架構與

Schema.User = new SimpleSchema({ 
    contracts: { 
    type: [Object], 
    }, 
    "contracts.$.start_date": { 
    type: Date, 
    }, 
    "contracts.$.end_date": { 
    type: Date, 
    }, 
    "contracts.$.salary": { 
    type: Number, 
    } 
}); 

或類似的東西?然後用meteor-autoform來創建這些?在Meteor中使對象成爲關係似乎非常困難。

回答

0

MongoDB不是關係數據庫,因此您需要手動處理關係(使用多個查詢)。傳統上,Mongo文檔將盡可能使用嵌入,並在必要時使用單獨的集合。在這裏看到更多的信息:

MongoDB relationships: embed or reference?

然而,流星拋出一個扳手的作品,因爲發佈模型只能發佈頂層文件,並寫入模板等

時,有對文檔層次結構的支持很少

因此流星下的正常方法是爲每個集合創建表和具有記錄使用ID參考其他記錄:

Schema.User = new SimpleSchema({ 
    contracts: { 
    type: [String], 
    }, 
    ... 
}); 

Schema.Contract = new SimpleSchema({ 
    user: { 
    type: String, 
    index: true 
    }, 
    ... 
}); 

雖然這將導致我如果你不得不做多個查詢,這個結構將與Meteor的設計理念一起工作。