Skip to main content

6. Docentstructuur en leerlingtoegang

Deze pagina is de ERD-inzoomlaag voor het databasehoofdstuk 03_docentstructuur-en-leerlingtoegang.md. De tabeldefinities in dat brondocument blijven leidend; deze pagina biedt een leesbare visuele ingang en een compacte inventaris. Harde ERD-relaties op deze pagina betekenen uitsluitend harde foreign keys binnen dezelfde modulegrens. Cross-module verwijzingen naar bijvoorbeeld Users, Roles, UserRelationships en ExerciseRuns worden als soft link of soft link + snapshot beschreven en niet als harde ERD-relatie getekend.

6.1 Waar dit domein over gaat

Dit domein verbindt onderwijsinhoud met toegang:

  • docenten maken en beheren niveaus;
  • centrale categorieën worden aan docentniveaus gekoppeld;
  • oefeningen hangen onder niveau-categorieën en verwijzen naar technische modules;
  • collaborators kunnen op niveau-laag meewerken aan onderwijsinhoud;
  • leerlingen krijgen toegang via docent-leerlingrelatie plus niveauautorisatie;
  • live meekijken wordt auditbaar geregistreerd, maar wijzigt de oefenrun niet.

Omdat dit domein relatief groot is, wordt het niet als één allesomvattend diagram getoond. De pagina gebruikt meerdere subdiagrammen.

6.2 Overzichts-ERD

Dit overzicht toont alleen de harde relaties binnen het catalogus-/docentstructuurdomein. Verwijzingen naar identity, authorization, relationships, practice en live monitoring zijn soft links en worden in de tekstuele relatie-inventaris uitgewerkt. History, migratie, eigendomsoverdracht en live-audit staan in de subdiagrammen hieronder.

6.3 Subdiagram: niveau, eigenaar en collaborators

Belangrijk onderscheid:

  • TeacherLevels.OwnerTeacherUserId is de actuele eigenaar en wordt als soft link naar Users.Id vastgelegd.
  • TeacherLevelCollaborators geeft samenwerkingsrechten op onderwijsinhoud binnen dat niveau.
  • Collaboration geeft geen leerling-, resultaat-, geschiedenis- of live-meekijktoegang.
  • TeacherLevelOwnershipTransfers bewaart overdrachtshistorie en is geen actuele eigenaarbron. De betrokken gebruikersvelden zijn soft links naar Users.Id.

6.4 Subdiagram: categorieën, oefeningen en modules

Belangrijk onderscheid:

  • Categories is centrale categorie-identiteit en dus geen privé-categorie per docent.
  • TeacherLevelCategories bepaalt dat een centrale categorie binnen een docentniveau gebruikt wordt.
  • TeacherLevelCategoryExercises koppelt concrete oefeningen aan zo'n niveau-categorie.
  • Exercises verwijst naar precies één ExerciseModules-record.
  • ParentExerciseId legt kopie/afleiding tussen oefeningen vast, maar wijzigingen in een kopie wijzigen de bron niet.
  • CategoryHistory, CategoryMigrations, ExerciseHistory en ExerciseModuleMigrations zijn audit-/onderhoudslagen en geen reguliere leerlingtoegangsbron.

6.5 Subdiagram: leerlingtoegang en live meekijken

Belangrijk onderscheid:

  • TeacherStudentLevelAccess maakt geen relatie aan; de relatie moet al bestaan in UserRelationships. De verwijzing is een soft link en wordt applicatief gevalideerd.
  • Toegang tot een niveau is docentcontextgebonden.
  • Een ouder/voogd gebruikt voor resultaten en live meekijken niet deze docentautorisatie, maar de actieve GuardianStudent-relatie.
  • LiveViewAudit registreert meekijken, maar is niet de bron van oefenvoortgang. De verwijzing naar ExerciseRuns is een soft link; de bron van live voortgang ligt bij de opgeslagen run/progressdata.

6.6 Tabellen in dit domein

TabelCategorieDoel / verantwoordelijkheidBrongebruik
TeacherLevelsDocentstructuurDoor een docent aangemaakte niveaus met vrije naamgeving en één actuele eigenaar.Hoofdcontext voor docentinhoud en leerlingautorisatie.
TeacherLevelCollaboratorsDocentstructuurActieve samenwerking van extra docenten op een bestaand niveau.Bewerken van onderwijsinhoud, geen leerlingtoegang.
TeacherLevelOwnershipTransfersDocentstructuurHistorie van overdracht van eigenaarschap van een niveau tussen docenten.Audit/reconstructie van eigenaarschapsoverdracht.
CategoriesCentrale onderwijsinhoudCentrale categorie-identiteit die door meerdere docentniveaus kan worden hergebruikt.Gedeelde semantische en visuele categoriebron.
CategoryHistoryAudit en historieVastleggen van beheerwijzigingen op centrale categorieën.Historische reconstructie van categoriewijzigingen.
CategoryMigrationsAudit en onderhoudRegistratie van migratie van broncategorie naar doelcategorie.Onderhoudsactie; herschrijft historische runs niet.
TeacherLevelCategoriesDocentstructuurKoppeling van centrale categorieën aan een docentniveau.Bepaalt welke categorie binnen een niveau beschikbaar kan zijn.
TeacherLevelCategoryExercisesDocentstructuurConcrete oefeningen binnen een docentniveau-categorie.Verbindt niveau-categorie met concrete oefening.
ExercisesDocentstructuurConcrete, door een docent geconfigureerde oefening op basis van precies één technische module.Bron voor oefenconfiguratie en modulekoppeling.
ExerciseHistoryAudit en historieAppend-only audittrail van wijzigingen op oefeningen.Reconstructie van configuratie-, naam-, icon- en statuswijzigingen.
ExerciseModulesTechnische modulesDoor beheer vrijgegeven technische oefenmodules waar oefeningen expliciet naar verwijzen.Technische strategy/modulebron voor oefeningen.
ExerciseModuleMigrationsAudit en onderhoudRegistratie van modulemigraties op proef-, docent- of globale scope.Onderhoudsactie met impact op concrete oefeningen.
LiveViewAuditAudit en historieAudittrail van live meekijksessies.Registratie van wie wanneer live meekeek.
TeacherStudentLevelAccessAutorisatieToegang van een leerling tot een of meer niveaus van een docent.Bron voor docentcontextgebonden leerlingtoegang.

6.7 Relatiestartpunten binnen dit domein

BrontabelVeldVerwijst naarRelatietypeNullableBetekenis
TeacherLevelsOwnerTeacherUserIdUsers.IdSoft linkNActuele eigenaar van het niveau; applicatief gevalideerd via identity/autorisatie.
TeacherLevelCollaboratorsTeacherLevelIdTeacherLevels.IdHarde FKNNiveau waarop collaboration geldt.
TeacherLevelCollaboratorsCollaboratorTeacherUserIdUsers.IdSoft linkNDocent die collaborator is.
TeacherLevelCollaboratorsGrantedByUserIdUsers.IdSoft linkNGebruiker die samenwerking toekende.
TeacherLevelCollaboratorsRevokedByUserIdUsers.IdSoft linkJGebruiker die samenwerking introk.
TeacherLevelOwnershipTransfersTeacherLevelIdTeacherLevels.IdHarde FKNNiveau waarvan eigenaarschap is overgedragen.
TeacherLevelOwnershipTransfersPreviousOwnerTeacherUserIdUsers.IdSoft linkNVorige eigenaar.
TeacherLevelOwnershipTransfersNewOwnerTeacherUserIdUsers.IdSoft linkNNieuwe eigenaar.
TeacherLevelOwnershipTransfersTransferredByUserIdUsers.IdSoft linkNGebruiker die overdracht uitvoerde.
CategoriesCreatedByUserIdUsers.IdSoft linkNActor die categorie aanmaakte.
CategoriesUpdatedByUserIdUsers.IdSoft linkJActor die categorie bijwerkte.
CategoryHistoryCategoryIdCategories.IdHarde FKNCategorie waarop historie betrekking heeft.
CategoryHistoryChangedByUserIdUsers.IdSoft linkNActor die wijziging uitvoerde.
CategoryMigrationsSourceCategoryIdCategories.IdHarde FKNBroncategorie bij migratie.
CategoryMigrationsTargetCategoryIdCategories.IdHarde FKNDoelcategorie bij migratie.
CategoryMigrationsMigratedByUserIdUsers.IdSoft linkNActor die migratie uitvoerde.
TeacherLevelCategoriesTeacherLevelIdTeacherLevels.IdHarde FKNNiveau waarin categorie wordt gebruikt.
TeacherLevelCategoriesCategoryIdCategories.IdHarde FKNCentrale categorie.
TeacherLevelCategoryExercisesTeacherLevelCategoryIdTeacherLevelCategories.IdHarde FKNNiveau-categoriecontext.
TeacherLevelCategoryExercisesExerciseIdExercises.IdHarde FKNConcrete oefening.
ExercisesExerciseModuleIdExerciseModules.IdHarde FKNTechnische moduleversie voor deze oefening.
ExercisesParentExerciseIdExercises.IdHarde FKJBron/oorsprong van een kopie of afgeleide oefening.
ExercisesCreatedByUserIdUsers.IdSoft linkNActor die oefening aanmaakte.
ExercisesUpdatedByUserIdUsers.IdSoft linkJActor die oefening bijwerkte.
ExerciseHistoryExerciseIdExercises.IdHarde FKNOefening waarop historie betrekking heeft.
ExerciseHistoryChangedByUserIdUsers.IdSoft linkNActor die wijziging uitvoerde.
ExerciseModulesCreatedByUserIdUsers.IdSoft linkNActor die moduleversie registreerde.
ExerciseModulesUpdatedByUserIdUsers.IdSoft linkJActor die moduleversie bijwerkte.
ExerciseModuleMigrationsExerciseIdExercises.IdHarde FKJConcrete oefening bij proef- of testmigratie.
ExerciseModuleMigrationsSourceExerciseModuleIdExerciseModules.IdHarde FKNBronmodule bij modulemigratie.
ExerciseModuleMigrationsTargetExerciseModuleIdExerciseModules.IdHarde FKNDoelmodule bij modulemigratie.
ExerciseModuleMigrationsTeacherUserIdUsers.IdSoft linkJDocent bij docentgerichte migratiescope.
ExerciseModuleMigrationsMigratedByUserIdUsers.IdSoft linkNActor die migratie uitvoerde.
LiveViewAuditViewerUserIdUsers.IdSoft linkNGebruiker die meekijkt.
LiveViewAuditViewerRoleIdRoles.IdSoft link + snapshotNRolcontext van de meekijker; ViewerRoleNameSnapshot bewaart de leesbare rolnaam.
LiveViewAuditObservedUserIdUsers.IdSoft linkNLeerling/kind waarbij wordt meegekeken.
LiveViewAuditExerciseRunIdExerciseRuns.IdSoft linkNActieve run waarop meekijken betrekking heeft.
TeacherStudentLevelAccessTeacherStudentRelationshipIdUserRelationships.IdSoft linkNActieve docent-leerlingrelatie waaruit autorisatie volgt.
TeacherStudentLevelAccessTeacherLevelIdTeacherLevels.IdSoft linkNGeautoriseerd niveau.
TeacherStudentLevelAccessStudentUserIdUsers.IdSoft linkNLeerling die toegang krijgt of kreeg.
TeacherStudentLevelAccessGrantedByUserIdUsers.IdSoft linkNActor die toegang verleende.
TeacherStudentLevelAccessRevokedByUserIdUsers.IdSoft linkJActor die toegang introk.

6.8 Brondata versus audit/onderhoud

TypeTabellenUitleg
Actuele onderwijsstructuurTeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises, Exercises, ExerciseModulesBepaalt welke onderwijsinhoud bestaat en waar die technisch aan gekoppeld is.
Actuele samenwerkingTeacherLevelCollaboratorsBepaalt wie op niveau-laag mag meewerken aan onderwijsinhoud.
Actuele leerlingtoegangTeacherStudentLevelAccess plus UserRelationshipsBepaalt welke leerling binnen docentcontext toegang heeft tot welk niveau.
Historie en onderhoudTeacherLevelOwnershipTransfers, CategoryHistory, CategoryMigrations, ExerciseHistory, ExerciseModuleMigrationsOndersteunt reconstructie, beheeranalyse en onderhoudsacties.
Live-auditLiveViewAuditRegistreert meekijksessies, maar is niet de bron van voortgang of resultaten.

6.9 Belangrijke cross-domein aandachtspunten

  • TeacherStudentLevelAccess.TeacherStudentRelationshipId is een soft link naar UserRelationships; toegang start dus bij relatiebeheer en wordt applicatief gevalideerd.
  • LiveViewAudit.ExerciseRunId is een soft link naar ExerciseRuns; live meekijken volgt een run, maar wijzigt die niet.
  • UserSettings.SelectedTeacherLevelId uit identiteit/autorisatie kan als soft link naar TeacherLevels verwijzen als gebruikersvoorkeur.
  • ExerciseRuns bewaart later historische verwijzingen naar TeacherLevels, Categories, Exercises en ExerciseModules; die historische runcontext mag niet onbedoeld worden herschreven door categorie- of modulemigraties.
  • ExerciseModules staat functioneel dicht bij configuratie/contentbeheer, maar wordt hier getoond omdat concrete oefeningen er direct naar verwijzen.

6.10 Zoompad vanaf deze pagina

VervolgGebruik wanneer...
Relatiebeheerje wilt controleren of een leerling, docent of ouder/voogd überhaupt een geldige relatiecontext heeft.
Oefenruns, delen en voortgangje wilt zien hoe niveau/categorie/oefening/module in historische runs terechtkomen.
Configuratie en contentbeheerje modulebeheer, featuretoggles of beheerde content rond oefeningen wilt bekijken.
Cross-domein relatiesje externe lijnen naar Users, Roles, UserRelationships of ExerciseRuns wilt volgen.