我想为使用NodeJS,MongoDB和Mongoose进行销售的简单和少量对象的市场设计数据库。因为我是MongoDB和NoSQL设计的新手,所以我需要一个设计它的指南。 我的实现在这里:
var orderSchema = new Schema({
orderId: Schema.Types.ObjectId,
orderType: {
type: String, enum: ['OBJEC1',
'OBJECT2',
//other objects
], default: 'ALBUM'
},
price: { type: String, enum: ['PRICE1', 'PRICE2', 'PRICE3'] },
coverPhoto: { type: String, default: '' },
photos: [{
address: { type: String, default: 'media/uploads' },
}],
orderQuantity: { type: Number, default: 1 },
isChecked: { type: Boolean, default: true },
date: { type: Date, default: Date.now }
});
此外,我会将每个订单的参考保存到其相关用户。我是对的还是不对的?非常感谢。
答案 0 :(得分:0)
基于逻辑设计架构的方式似乎很好。有一点是你在所有领域都使用了默认值。
首先,您应该了解默认是可选的,只有在您想要在创建数据期间填充某些值时才使用默认值。
示例:您有target="_self"
字段的默认值,这里很好。您不希望在处理数据期间手动分配日期。因此,除非您的字段在创建时应具有共同的默认值,否则您将继续,否则删除默认字段并确保正确插入数据。
如果某些字段必须在集合中创建文档,则可以使用date
属性。我想required
是必填字段,所以在插入过程中不要错过它,所以请将其设为orderType
。
required: true