sql >> Database teknologi >  >> RDS >> Database

Modellering af en åben markedsplads for uddannelse

Det er nødvendigt at følge med i de seneste ændringer inden for teknologi, hvis du ønsker at komme videre på dagens konkurrenceprægede arbejdsmarked. I denne artikel bygger vi en datamodel for onlineportaler, der tilbyder en mere engagerende platform til at lære nye færdigheder, ved at bruge Native Monks som vores guide.

Introduktion

I en af ​​vores seneste artikler byggede vi en arbejdsdatamodel til en e-læringsportal, og vi forklarede, hvordan kurser kan opdeles i optagede/transskriptionslektioner og gøres tilgængelige for eleverne. Der er dog nogle, der foretrækker at lære direkte af lærere i mere engagerende, personlige sessioner. I modsætning til platforme som Udemy og Coursera giver Native Monks eleverne mulighed for at ansætte lærere (enten lokalt eller online) og at lære færdigheder direkte fra dem i en-til-en klasser, der administreres enten online eller personligt.

Krav

Da platformen giver eleverne mulighed for at søge efter lærere efter deres egne kriterier, lægger den stor vægt på profilopbygning for lærere. Med andre ord indsamler platformen så meget information som muligt fra lærere, så den kan give bedre søgeanbefalinger til eleverne.

Lærere på platformen kan specialisere sig inden for ethvert område, såsom teknologi, madlavning, kunst, vedligeholdelse og service og så videre. Færdigheder, der kræver meget arbejde og forklaring, læres ofte eleverne personligt, mens de, der er relativt enkle, bedre administreres online via videoforelæsninger, som eleverne kan købe hos deres udvalgte instruktører.

Med disse krav i tankerne har vi opdelt hele vores datamodel i tre hovedfagområder:

  1. Profilopbygning for lærere
  2. Studentledelse og engagement
  3. Administration af optaget lektion

Lad os se nærmere på hvert af disse områder.

Datamodel




Fagområde #1:Profilopbygning for lærere

Dette område af platformen vedrører indsamling af grundlæggende oplysninger fra lærere, såsom deres præferencer for elever, placering, tilgængelighed, komfortniveau og så videre. Når eleverne gennemser platformen, får de vist en liste over lærere, der bedst matcher deres givne præferencer. Der er en række forskellige tabeller i dette område, som vi vil diskutere nedenfor.

teacher tabel:gemmer grundlæggende oplysninger om instruktører. De fleste af kolonnerne i denne tabel er selvforklarende, men lad os uddybe nogle få, som måske ikke er så indlysende:

  • max_travel_distance — repræsenterer den maksimale afstand, en lærer kan rejse for at møde en elev. En værdi på nul angiver, at læreren ikke kan rejse for at undervise elever.
  • cost_to_travel — gemmer en værdi indsendt af en lærer, der angiver de ekstra gebyrer, de vil opkræve for at rejse for at møde en elev.
  • profile_image — gemmer en lærers profilbillede. Da lærere ikke er forpligtet til at poste profilbilleder, er værdien standard til null, hvis der ikke er angivet et alternativ.
  • teaching_since — gemmer en værdi, der repræsenterer det år, hvor instruktøren begyndte at undervise. Dette giver eleverne mulighed for at få en bedre fornemmelse for en lærers oplevelse.
  • brief_description — gemmer en kort beskrivelse om læreren.
  • timezone_id — gemmer tidszoneoplysningerne for en lærer, hvilket tillader elever og

teacher_teaching_location tabel:gemmer en lærers placeringspræferencer, som de skal angive, når de bygger deres profil. Nogle lærere foretrækker at administrere lektioner på deres eget sted eller på deres elevs sted, men andre vil hellere holde forelæsninger i et offentligt område, såsom et nærliggende bibliotek eller medborgerhus.

  • id — den primære nøgle til denne tabel.
  • teacher_id — identificerer den lærer, som disse placeringspræferencer tilhører.
  • teaching_location_type_id — den type sted, hvor læreren gerne vil administrere lektionen:online, lærerens sted, elevens sted eller et neutralt sted.
  • address_id — en refereret kolonne, der gemmer den fulde adresse på mødestedet.

exp_level_teach_teacher tabel:lærere bliver også bedt om at specificere de ekspertiseniveauer, som de er komfortable med at undervise på (begynder, øvet, ekspert).

student_comfortability tabel:nogle lærere er utilpas med at undervise visse aldersgrupper, såsom ældre. Portalen giver således lærere mulighed for også at angive deres præferencer for elever med hensyn til alder og køn.

teacher_availability tabel:gemmer lærerens tilgængelighed de næste to uger og op til en måned i forvejen. Disse detaljer ændres af lærere med jævne mellemrum.

  • id — den primære nøgle til denne tabel.
  • teacher_id — identificerer den lærer, for hvem disse oplysninger er gemt.
  • start_date_time — gemmer startdatoen og -tidspunktet, når læreren er tilgængelig til at undervise.
  • duration_in_min — angiver, hvor meget tid instruktøren har til undervisning, i minutter.

teacher_earning tabel:gemmer faktureringstakster for lærere. Indtil videre har vi oprettet kolonner for at angive faktureringstaksterne for 30-, 60-, 90- og 120-minutters forelæsninger.

Fagområde# 2:Elevledelse og engagement

Dette område er dedikeret til at holde styr på aftaler mellem elever og lærere. Ligesom tabellen for lærere i det første fagområde er der en tabel for elever (det passende navn student ) i dette fagområde. Alle kolonnerne i denne tabel er ret ligetil, så vi vil ikke dykke ned i dem.

En anden tabel har titlen teacher_reservation . Dette er den faktiske tabel, der sporer aftaler mellem elever og lærere. Når en elev vælger en bestemt lærer, får de at se den pågældende instruktørs tilgængelighed. De skal vælge en eller flere ledige pladser for at foretage en reservation hos læreren. Derudover skal eleven angive et undervisningssted ud fra præferencerne for den valgte lærer. Når eleven har udfyldt sin del af formularen, sendes reservationen til læreren til gennemgang og godkendelse. Lad os præcisere nogle af kolonnerne for denne tabel:

  • id — den primære nøgle til tabellen. Giver en unik identitet til en individuel reservationsanmodning.
  • student_id — identificerer den elev, der foretager reservationen.
  • teacher_id — identificerer den lærer, som reservationen anmodes om.
  • teacher_teaching_location_id — gemmer oplysninger om det sted, hvor eleven gerne vil deltage i undervisningen. Denne placering skal matche en af ​​dem, der er angivet af læreren i deres præferencer.

Emneområde #3:Styring af optaget lektion

Denne portal giver lærere mulighed for at uploade optagede lektioner. Hver session er mærket med en abonnementspris, som eleverne skal betale, før de får lov til at deltage. Hvert abonnement kommer med en udløbsdato, så en session forbliver åben til visning, indtil elevens abonnement udløber.

recorded_lesson tabel:gemmer grundlæggende oplysninger om optagede sessioner.

  • id — primær nøgle til tabellen, der tildeler et unikt nummer til en individuel optaget lektion.
  • subject — gemmer emnelinjen eller titlen på en lektion.
  • lesson_category_id — en refereret kolonne, der repræsenterer den kategori, som en lektion tilhører (f.eks. rejser, madlavning, fysik osv.).
  • teacher_id — identificerer den instruktør, der forberedte og uploadede denne lektion.
  • lesson_description — beskrivende kolonne, der gemmer en kort beskrivelse af lektionen.
  • video_location - typisk gemmes videoer på serverfilsystemer, og deres placeringer gemmes i denne kolonne. Filer påkaldes og gøres tilgængelige for brugerne, når de bliver bedt om det.
  • lesson_transcript — gem en komplet transskription af videoen/videoerne til denne lektion.
  • cost_to_subscribe — gemmer den pris, som en studerende skal betale for at abonnere på videoen.

lesson_subscription tabel:gemmer grundlæggende oplysninger om elevabonnementer.

  • id — den primære nøgle til denne tabel.
  • student_id — identificerer den elev, der har abonneret på denne lektion.
  • recorded_lesson_id — identificerer den lektion, som eleven tilmeldte sig.
  • subscription_date — gemmer datoen for, hvornår abonnementet startede. Det er normalt samme dato, som da betalingen blev foretaget for abonnementet.
  • is_lifetime_subscription - mange lektioner kommer med livstidsabonnement, hvilket betyder, at en lektion forbliver hos dig for evigt, når du har betalt for lektionen. Hvis værdien gemt i denne kolonne er "Y", er der ingen udløbsdato for abonnementet.
  • subscription_expiring_on — gemmer datoen for, hvornår abonnementet udløber. Hvis det er et livstidsabonnement, gemmer denne kolonne værdien null.

Oversigt

Læring giver folk mulighed for at fremme deres karriere, forbedre deres liv og forfølge det arbejde, de elsker. Denne applikation vil hjælpe med at reducere kløften mellem efterspørgsel og udbud for fagfolk og vil skabe et online læringsfællesskab, hvor alle kan udforske, lære og undervise.

Hvilke yderligere funktioner vil du gerne tilføje til denne datamodel? Vi vil meget gerne høre dine tanker!


  1. Hvordan kaster jeg char til heltal, mens jeg forespørger i django ORM?

  2. Postgres UUID JDBC virker ikke

  3. Database design

  4. Bestem rang baseret på flere kolonner i MySQL