Javascript 使用订阅计划创建帐户的MongoDb架构

Javascript 使用订阅计划创建帐户的MongoDb架构,javascript,node.js,mongodb,mongoose,schema,Javascript,Node.js,Mongodb,Mongoose,Schema,我必须创建一个帐户创建模式,这基本上是一个三步过程 在步骤1中,我们使用带有密码的电子邮件id并确认密码 第二步:用户可以选择基本、标准、特优的订阅计划,然后 第3步:付款模块,我们在其中询问所选计划的卡详细信息和付款 成功订阅后,用户重定向到仪表板。我必须设计模式 步骤1-没有理由保留确认密码。这应该只在客户端检查。 因此,我们只需要对电子邮件和密码进行哈希:password+salt[email/userid] 确保在用户注册时检查电子邮件 第2步-应该是索引,比如说0-未订阅,1-基本,2

我必须创建一个帐户创建模式,这基本上是一个三步过程

在步骤1中,我们使用带有密码的电子邮件id并确认密码

第二步:用户可以选择基本、标准、特优的订阅计划,然后

第3步:付款模块,我们在其中询问所选计划的卡详细信息和付款


成功订阅后,用户重定向到仪表板。我必须设计模式

步骤1-没有理由保留确认密码。这应该只在客户端检查。 因此,我们只需要对电子邮件和密码进行哈希:password+salt[email/userid] 确保在用户注册时检查电子邮件

第2步-应该是索引,比如说0-未订阅,1-基本,2-标准,3-高级

第三步-这对你来说最好不要保留。只需使用在线清算API即可获得付款和付款确认

我会添加订阅日期字段。以及订阅将过期的日期。 祝你好运

编辑


这是您需要的最基本的方案形式。您可以通过在数组中设置最后三个字段来跟踪用户过去的订阅计划,从而使其更加复杂。

您可以为上述场景设计一个模式吗。我正在使用mongoose/MongoDB
let schema = new Schema({
    email: { type: String, validate: validateEmail }, //The validate Email should be a function that get as value the email and return true or false if it is valid! (email format/not duplicated)
    subscription: { type: Number },// 0-non. 1-basic, 2-standard, 3-premium (this will be set by the payment)
    subscriptionDate: { type: Date },
    subscriptionExpr: { type: Date }//This also will be set by the payment, and will be checked before any service giving. making sure the subscription is still valid.
});