【发布时间】:2014-12-12 02:20:48
【问题描述】:
假设我将在 mongodb 中建立多对一关系,
var mongoose = require('mongoose');
var Schema = mongoose.Schema,
ObjectID = Schema.Types.ObjectId;
var productSchema = new Schema({
supplier: {
_id: ObjectId,
name: String
}
});
我读过一篇关于 6 Rules of Thumb for MongoDB Schema Design 的 mongodb 博文,并读到:
只有在读取与更新的比率很高时,反规范化才有意义。如果您会经常读取非规范化数据,但很少更新它
由于supplier 不经常更新,我决定对其名称进行非规范化,但仍保留_id,因此当我必须更新它时,我有一些参考。
我决定使用ObjectId 作为type,但我还没有实际测试过它是否有效,我已经想知道,如果我做得对,如果使用String 类型会更实用。
【问题讨论】: