Mongodb/Mongoose:为用户帐户创建两种类型的模型
Posted
技术标签:
【中文标题】Mongodb/Mongoose:为用户帐户创建两种类型的模型【英文标题】:Mongodb/Mongoose : create two types of models for user accounts 【发布时间】:2016-12-02 04:58:28 【问题描述】:我在 nodejs 中使用 mongoose,我正在寻找一些关于 MongoDB 架构的建议,以拥有两种类型的用户:员工和客户,他们都将使用相同的注册页面(我使用护照作为认证)。
我正在考虑创建一个公共帐户模型(用于员工和客户),其中将包含一些公共内容,例如电子邮件、通行证、姓名等,然后将帐户 shema 嵌入员工和客户模型中。
我不确定这是否是正确的方法,因此非常感谢任何建议。
谢谢。
【问题讨论】:
【参考方案1】:因为employee
和client
都有很多共同的属性,但很少有专门的属性。所以,恕我直言,最好为他们制作一个单一的架构。
var Person = new Schema(
type: String,
// common properties below
email: String,
dob: String,
// props of employee
joiningDate: Date,
// props of client
account: type: Schema.Types.Mixed
);
在这里,你可以在type
的基础上分离Client
和Employee
【讨论】:
我可以在每次用户想要注册时动态指定帐户架构吗?如果他注册为客户,我将使用用户帐户:type: Schema.Types.Mixed ,ref: client 和员工同样的事情以上是关于Mongodb/Mongoose:为用户帐户创建两种类型的模型的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB Mongoose Schema 嵌套文档结构和关系