我正在为我的应用程序的 mongo 集合和 mongoose 模式的大型设计选择而苦苦挣扎。
我的应用程序需要两种帐户类型:学生和教师。
两种帐户类型之间唯一的相似之处在于它们都需要以下字段:名字、姓氏、电子邮件和密码。除此之外,它们是不同的(老师有“作业”、“测试”,学生有“家庭作业”等)
我已经广泛考虑了我的选择,并考虑了以下设计选择:
使用mongoose-schema-extend,并为所有帐户创建一个“抽象”模式。然后,扩展此模式以创建教师和学生模式。这意味着两个集合,因此有一些冗余字段。登录和帐户创建也存在问题(检查用于登录的电子邮件是学生电子邮件还是教师电子邮件等)
创建一个集合“accounts”,并添加一个类型字段以指示该帐户是“student”还是“teacher”。这意味着“帐户”集合中的条目将是不同的。这还要求我有两个用于单个集合的 mongoose 模式。
创建一个“accounts”集合,有一个“type”字段和一个“accountId”字段。除了“学生”集合和“教师”集合之外——“类型”字段将指示学生特定或教师特定字段驻留在哪个集合中,“帐户ID”字段将准确指示帐户的哪个条目与之相匹配。
我感谢所有的意见、批评或建议。