sql >> Database >  >> RDS >> Database

Modelleren van een open markt voor onderwijs

Bijblijven met de laatste technologische veranderingen is noodzakelijk als je vooruit wilt op de competitieve arbeidsmarkt van vandaag. In dit artikel bouwen we een datamodel voor online portals die een aantrekkelijker platform bieden voor het leren van nieuwe vaardigheden, waarbij we Native Monks als onze gids gebruiken.

Inleiding

In een van onze recente artikelen hebben we een werkend gegevensmodel gebouwd voor een e-learningportaal en hebben we uitgelegd hoe cursussen kunnen worden opgesplitst in opgenomen/transcriptlessen en beschikbaar kunnen worden gesteld aan studenten. Er zijn er echter die liever rechtstreeks van docenten leren in meer boeiende, persoonlijke sessies. In tegenstelling tot platforms zoals Udemy en Coursera, kunnen studenten met Native Monks docenten inhuren (lokaal of online) en vaardigheden rechtstreeks van hen leren in één-op-één lessen die online of persoonlijk worden gegeven.

Vereisten

Omdat het platform studenten in staat stelt docenten te zoeken volgens hun eigen criteria, wordt veel nadruk gelegd op profielvorming voor docenten. Met andere woorden, het platform verzamelt zoveel mogelijk informatie van docenten, zodat het betere zoekaanbevelingen aan studenten kan geven.

Leraren op het platform kunnen zich specialiseren op elk gebied, zoals technologie, koken, kunst, onderhoud en service, enzovoort. Vaardigheden die veel werk en uitleg vergen, worden vaak persoonlijk aan studenten bijgebracht, terwijl relatief eenvoudige vaardigheden beter online kunnen worden beheerd via videocolleges die studenten kunnen kopen bij hun geselecteerde docenten.

Met deze vereisten in gedachten hebben we ons hele datamodel opgesplitst in drie hoofdonderwerpen:

  1. Profielopbouw voor docenten
  2. Leerlingenbeheer en engagement
  3. Opgenomen lesbeheer

Laten we elk van deze gebieden eens nader bekijken.

Gegevensmodel




Onderwerpgebied #1:Profielopbouw voor docenten

Dit deel van het platform betreft het verzamelen van basisinformatie van docenten, zoals hun voorkeuren voor studenten, locatie, beschikbaarheid, comfortniveau, enzovoort. Wanneer studenten door het platform bladeren, krijgen ze een lijst te zien met docenten die het beste passen bij hun gegeven voorkeuren. Er zijn verschillende tabellen in dit gebied die we hieronder zullen bespreken.

teacher tabel:slaat basisinformatie over instructeurs op. De meeste kolommen in deze tabel spreken voor zich, maar laten we er een paar bespreken die misschien niet zo voor de hand liggen:

  • max_travel_distance — staat voor de maximale afstand die een leraar kan afleggen om een ​​leerling te ontmoeten. Een waarde van nul geeft aan dat de leraar niet kan reizen om leerlingen les te geven.
  • cost_to_travel — slaat een waarde op die is ingediend door een leraar die de extra kosten aangeeft die ze in rekening brengen voor het reizen om een ​​student te ontmoeten.
  • profile_image - slaat de profielfoto van een leraar op. Aangezien docenten geen profielfoto's hoeven te plaatsen, wordt de waarde standaard op nul gezet als er geen alternatief is opgegeven.
  • teaching_since — slaat een waarde op die het jaar vertegenwoordigt waarin de instructeur begon met lesgeven. Hierdoor krijgen leerlingen een beter gevoel voor de ervaring van een docent.
  • brief_description — slaat een korte beschrijving over de leraar op.
  • timezone_id — slaat de tijdzone-informatie voor een leraar op, zodat studenten en

teacher_teaching_location tabel:slaat de locatievoorkeuren van een leraar op, die ze moeten opgeven bij het samenstellen van hun profiel. Sommige docenten geven de voorkeur aan lessen op hun eigen plek of bij hun leerling, maar anderen geven liever lezingen in een openbare ruimte, zoals een nabijgelegen bibliotheek of buurthuis.

  • id — de primaire sleutel voor deze tabel.
  • teacher_id — identificeert de leraar bij wie deze locatievoorkeuren horen.
  • teaching_location_type_id — het type locatie waar de leraar de les wil geven:online, de plaats van de leraar, de plaats van de leerling of een neutrale locatie.
  • address_id — een kolom waarnaar wordt verwezen waarin het volledige adres van de vergaderlocatie is opgeslagen.

exp_level_teach_teacher tabel:leraren wordt ook gevraagd om de expertiseniveaus te specificeren waarop ze comfortabel lesgeven (beginner, gemiddeld, expert).

student_comfortability tabel:sommige leraren voelen zich ongemakkelijk bij het lesgeven aan bepaalde leeftijdsgroepen, zoals ouderen. Zo kunnen docenten op het portaal ook hun voorkeuren voor studenten aangeven met betrekking tot leeftijd en geslacht.

teacher_availability tabel:slaat de beschikbaarheid van de leraar op voor de komende twee weken en tot een maand van tevoren. Deze details worden periodiek aangepast door docenten.

  • id — de primaire sleutel voor deze tabel.
  • teacher_id — identificeert de leraar voor wie deze informatie is opgeslagen.
  • start_date_time — slaat de startdatum en -tijd op wanneer de leraar beschikbaar is om les te geven.
  • duration_in_min — geeft aan hoeveel tijd de instructeur heeft om les te geven, in minuten.

teacher_earning tabel:slaat factureringstarieven op voor leraren. Voor nu hebben we kolommen gemaakt om de factureringstarieven te specificeren voor lezingen van 30, 60, 90 en 120 minuten.

Onderwerpgebied # 2:Studentenbeheer en -betrokkenheid

Dit gebied is bedoeld voor het bijhouden van afspraken tussen studenten en docenten. Net als de tabel voor docenten in het eerste vakgebied, is er een tabel voor studenten (toepasselijk genaamd student ) in dit vakgebied. Alle kolommen in deze tabel zijn vrij eenvoudig, dus daar gaan we niet op in.

Een andere tabel is getiteld teacher_reservation . Dit is de eigenlijke tabel die afspraken tussen studenten en docenten bijhoudt. Wanneer een student een bepaalde leraar selecteert, krijgen ze de beschikbaarheid van die instructeur te zien. Ze zijn verplicht om een ​​of meer beschikbare slots te selecteren om een ​​reservering te maken bij de leraar. Daarnaast moet de student een leslocatie specificeren op basis van de voorkeuren van de door hem geselecteerde leraar. Zodra de student zijn deel van het formulier heeft ingevuld, wordt de reservering naar de docent gestuurd voor beoordeling en goedkeuring. Laten we enkele kolommen voor deze tabel verduidelijken:

  • id — de primaire sleutel voor de tabel. Geeft een unieke identiteit aan een individuele reserveringsaanvraag.
  • student_id — identificeert de student die de reservering maakt.
  • teacher_id — identificeert de leraar voor wie de reservering wordt aangevraagd.
  • teacher_teaching_location_id — slaat informatie op over de locatie waar de student lessen wil volgen. Deze locatie moet overeenkomen met een van de locaties die door de leraar zijn opgegeven in hun voorkeuren.

Onderwerpgebied #3:Opgenomen lesbeheer

Met dit portaal kunnen docenten opgenomen lessen uploaden. Elke sessie is gelabeld met abonnementskosten die studenten moeten betalen voordat ze mogen deelnemen. Elk abonnement heeft een vervaldatum, dus een sessie blijft open om te bekijken totdat het abonnement van de student verloopt.

recorded_lesson tabel:slaat basisinformatie op over opgenomen sessies.

  • id — primaire sleutel voor de tabel die een uniek nummer toewijst aan een individueel opgenomen les.
  • subject — slaat de onderwerpregel of titel van een les op.
  • lesson_category_id — een kolom waarnaar wordt verwezen die de categorie vertegenwoordigt waartoe een les behoort (bijv. reizen, koken, natuurkunde, enz.).
  • teacher_id — identificeert de instructeur die deze les heeft voorbereid en geüpload.
  • lesson_description — beschrijvende kolom met een korte beschrijving van de les.
  • video_location — doorgaans worden video's opgeslagen op serverbestandssystemen en worden hun locaties in deze kolom opgeslagen. Bestanden worden aangeroepen en beschikbaar gesteld aan gebruikers wanneer daarom wordt gevraagd.
  • lesson_transcript — bewaar een volledige transcriptie van de video('s) voor deze les.
  • cost_to_subscribe — slaat de prijs op die een student moet betalen om zich op de video te abonneren.

lesson_subscription tabel:slaat basisinformatie op over studentenabonnementen.

  • id — de primaire sleutel voor deze tabel.
  • student_id — identificeert de leerling die zich op deze les heeft geabonneerd.
  • recorded_lesson_id — identificeert de les waarop de leerling zich heeft ingeschreven.
  • subscription_date — slaat de datum op waarop het abonnement begon. Het is meestal dezelfde datum als waarop de betaling voor het abonnement is gedaan.
  • is_lifetime_subscription - veel lessen worden geleverd met een levenslang abonnement, wat betekent dat een les voor altijd bij je blijft als je eenmaal voor de les hebt betaald. Als de waarde die in deze kolom is opgeslagen 'Y' is, is er geen vervaldatum voor het abonnement.
  • subscription_expiring_on — slaat de datum op waarop het abonnement afloopt. Als het een levenslang abonnement is, slaat deze kolom de waarde null op.

Samenvatting

Leren stelt mensen in staat hun loopbaan vooruit te helpen, hun leven te verbeteren en het werk na te streven waar ze van houden. Deze applicatie helpt de kloof tussen vraag en aanbod voor professionals te verkleinen en zal een online leergemeenschap creëren waar iedereen kan verkennen, leren en lesgeven.

Welke extra functies zou u aan dit datamodel willen toevoegen? We horen graag uw mening!


  1. Snelste manier om dezelfde query meerdere keren uit te voeren in SQL Server

  2. verwijst een externe sleutel altijd naar een unieke sleutel in een andere tabel?

  3. MariaDB DAY() uitgelegd

  4. MySQL onjuiste tekenreekswaardefout bij het opslaan van unicode-tekenreeks in Django