EST-IL JUDICIEUX DE GÉNÉRALISER UNE TABLE DE PROFIL POUR DEUX PROFILS DISTINCTS DANS LE SYSTÈME, DANS MON CAS, LES ENSEIGNANTS ET LES ÉTUDIANTS ? C'est ce que je suis en train de faire et je voudrais juste une vérification générale de la cohérence de mon approche de la conception. Les réponses sont les bienvenues. Contexte ci-dessous :
Nous construisons un système web qui comporte à la fois des enseignants et des étudiants. Les deux ont des comptes dans le système. Les deux ont des profils dans le système.
Ma question porte sur la conception de ces tables profilées.
Le profil de l'enseignant est assez statique en ce qui concerne les métadonnées qui lui sont associées. Chaque enseignant dispose d'un certain nombre de champs qui exposent des informations sur cet individu (écoles, diplômes, etc.). Il en va différemment pour les étudiants. Nous utilisons un service Windows pour extraire des données variables sur les étudiants à partir d'un flux infini de feuilles de calcul Excel.
Les données sont transférées dans notre base de données et les champs apparaissent ensuite en association avec le profil de l'étudiant. Par conséquent, chaque étudiant peut avoir des champs très différents dans son profil.
J'ai commencé avec le concept de trois tables :
Comptes
AccountID
Profils des enseignants
TeacherProfileID
AccountID
SecondarySchool
University
YearsTeaching
Etc...
Profil de l'étudiant
StudentProfileID
AccountID
Header
Value
En StudentProfiles
contiendrait le nom des en-têtes de colonne des feuilles de calcul Excel et les valeurs associées.
Depuis, j'ai légèrement modifié la conception afin de traiter les profils de manière plus générique, conformément à l'image ERD ci-jointe. Les "en-têtes" de l'enseignant et de l'étudiant sont stockés dans une table appelée ProfileAttributeTypes
et les réponses (provenant du document Excel ou des champs de saisie du formulaire web) sont placées dans un fichier ProfileAttributes
table. De cette manière, les profils des étudiants et des enseignants peuvent être associés à un flux dynamique de champs de profil. Le tableau "Permissions" indique s'il s'agit d'un étudiant ou d'un enseignant.
Comme ce système est appelé à se développer rapidement, je veux m'assurer que les fondations sont solides. Pourriez-vous me faire part de vos commentaires sur cette conception et me dire si elle vous semble judicieuse ou si vous voyez des problèmes qu'elle pourrait créer et, le cas échéant, quelle pourrait être une meilleure approche ?
Merci d'avance.