数据库设计市场

时间:2017-04-12 04:15:57

标签: mongodb mongoose

我想为使用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 }
});

此外,我会将每个订单的参考保存到其相关用户。我是对的还是不对的?非常感谢。

1 个答案:

答案 0 :(得分:0)

基于逻辑设计架构的方式似乎很好。有一点是你在所有领域都使用了默认值。

首先,您应该了解默认是可选的,只有在您想要在创建数据期间填充某些值时才使用默认值。

示例:您有target="_self"字段的默认值,这里很好。您不希望在处理数据期间手动分配日期。因此,除非您的字段在创建时应具有共同的默认值,否则您将继续,否则删除默认字段并确保正确插入数据。

如果某些字段必须在集合中创建文档,则可以使用date属性。我想required是必填字段,所以在插入过程中不要错过它,所以请将其设为orderType

required: true