问题描述
简化来说,一个shop一般有一些属性类似:那么在对这个schema进行操作的时候,通常是有一个账户来访问node.js里面的路由。
比如账户名称是shopName,密码是password
但是现实情况是,一个店铺可以有好几个帐号,帐号之间的权限会不一样。比如,店小二的帐号权限只能添加一个商品。而老板的帐号权限可以删除一个订单。
这个在mongodb里面实现的大致思路是什么呢?
module.exports = function( mongoose) { var ShopSchema = new mongoose.Schema({ shopName: { type: String, unique: true }, password:{type:String}, address: { type: String}, location:{type:[Number],index: ’2d’}, shopPicUrl: {type: String}, shopPicTrueUrl:{type: String}, mark: { type: String}, open:{type:Boolean}, shopType:{type:String},dish:{type:[DishSchema]}, order:{type:[{ orderId:{type: String}, date:{type: Date,default: Date.now}, dish:{type: [DishSchema]}, userId:{type: String} }]} });var DishSchema = new mongoose.Schema({ dishName: { type: String}, tags: { type: Array}, price: { type: Number}, intro: { type: String}, dishPic:{ type: String}, index:{type:Number}, comment:{type:[{date:{type: Date,default: Date.now},userId:{type: String},content:{type: String} }]} });
问题解答
回答1:店铺是一个单独的账号,下面搞一个数组,纪录用户名密码和登陆权限。{shopname:XXXXX,accouts:[ {
loginname:xxxx,password:xxxx,authority:[],
}]}然后建立一个索引 accouts.loginname unique 的用mongo了就用mongo的方式思考,现在的ODM很多还是ORM的思路设计的,我倾向不用。直接写json当然,你可以把用户的详细信息塞到loginname那一层比如头像介绍什么的,另外建表也行