Je suis aux prises avec un grand choix de conception pour les collections mongo et les schémas mongo de mes applications.Node, MongoDB, Mongoose Design Choix - Créer deux collections ou une collection
Mes applications appelle pour deux types de compte: Étudiants et Enseignants. La seule similarité entre les deux types de compte est qu'ils nécessitent tous les deux les champs: prénom, nom, adresse e-mail et mot de passe. En dehors de cela, ils sont différents (les enseignants ont « missions », « tests », les étudiants ont des « devoirs », etc.)
J'ai médité mes options largement, et examiné les choix de conception suivants:
Utilisez mongoose-schema-extend et créez un schéma "abstrait" pour tous les comptes. Ensuite, étendez ce schéma pour créer les schémas Student et Student. Cela implique deux collections, et donc quelques champs redondants. Il y a aussi des problèmes avec l'exploitation forestière et la création de compte (vérifier si l'e-mail utilisé pour se connecter est un e-mail e-mail étudiant ou enseignant, etc.)
Créer une collection « comptes », et ajouter un type le champ à indique si le compte est un "étudiant" ou un "enseignant". Cela implique que les entrées dans la collection "accounts" seront dissemblables. Ce nécessite également que j'ai deux schémas mangouste pour une seule collection .
Créer une collection "accounts", avoir un champ "type" et un champ "accountId". En plus d'une collection «étudiant» et d'une collection «enseignant» - le champ «type» indiquera la collection dans laquelle se trouvent les champs spécifiques à l'étudiant ou à l'enseignant, et le champ «accountId» indiquera exactement quelle entrée le compte est apparié avec.
J'apprécie toute entrée, critique ou suggestion.