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