sql >> Databasteknik >  >> RDS >> Database

Modellera en öppen marknadsplats för utbildning

Att hänga med i de senaste teknikförändringarna är nödvändigt om du vill ta dig fram på dagens konkurrensutsatta arbetsmarknad. I den här artikeln bygger vi en datamodell för onlineportaler som erbjuder en mer engagerande plattform för att lära sig nya färdigheter, med hjälp av Native Monks som vår guide.

Introduktion

I en av våra senaste artiklar byggde vi en fungerande datamodell för en e-lärandeportal och vi förklarade hur kurser kan delas upp i inspelade/avskriftslektioner och göras tillgängliga för studenter. Det finns dock några som föredrar att lära sig direkt från lärare i mer engagerande, personliga sessioner. Till skillnad från plattformar som Udemy och Coursera tillåter Native Monks elever att anställa lärare (antingen lokalt eller online) och att lära sig färdigheter direkt från dem i en-mot-en-klasser som administreras antingen online eller personligen.

Krav

Eftersom plattformen låter eleverna söka efter lärare efter sina egna kriterier, lägger den stor vikt vid profilbyggande för lärare. Plattformen samlar med andra ord in så mycket information den kan från lärare så att den kan ge bättre sökrekommendationer till eleverna.

Lärare på plattformen kan specialisera sig inom vilket område som helst, som teknik, matlagning, konst, underhåll och service och så vidare. Färdigheter som kräver mycket arbete och förklaring lärs ofta ut till studenterna personligen, medan de som är relativt enkla administreras bättre online via videoföreläsningar som eleverna kan köpa från sina utvalda instruktörer.

Med dessa krav i åtanke har vi delat upp hela vår datamodell i tre huvudområden:

  1. Profiluppbyggnad för lärare
  2. Studenthantering och engagemang
  3. Hantera inspelad lektion

Låt oss ta en närmare titt på vart och ett av dessa områden.

Datamodell




Ämnesområde #1:Profiluppbyggnad för lärare

Denna del av plattformen handlar om att samla in grundläggande information från lärare, såsom deras preferenser för elever, plats, tillgänglighet, komfortnivå och så vidare. När eleverna surfar på plattformen visas en lista över lärare som bäst matchar deras givna preferenser. Det finns en mängd olika tabeller i det här området som vi kommer att diskutera nedan.

teacher tabell:lagrar grundläggande information om instruktörer. De flesta av kolumnerna i den här tabellen är självförklarande, men låt oss utveckla några som kanske inte är lika självklara:

  • max_travel_distance — representerar det maximala avstånd en lärare kan resa för att träffa en elev. Ett värde på noll anger att läraren inte kan resa för att undervisa elever.
  • cost_to_travel — lagrar ett värde som skickats in av en lärare som anger de extra avgifter som de tar ut för att resa för att träffa en elev.
  • profile_image — lagrar en lärares profilbild. Eftersom lärare inte är skyldiga att lägga upp profilbilder, är värdet som standard null om inget alternativ anges.
  • teaching_since — lagrar ett värde som representerar året då instruktören började undervisa. Detta gör att eleverna får en bättre känsla för en lärares upplevelse.
  • brief_description — lagrar en kort beskrivning om läraren.
  • timezone_id — lagrar tidszonsinformationen för en lärare, vilket tillåter elever och

teacher_teaching_location tabell:lagrar en lärares platsinställningar, som de måste ange när de bygger sin profil. Vissa lärare föredrar att administrera lektioner på sin egen plats eller på sin elevs plats, men andra föredrar att hålla föreläsningar i ett offentligt område, till exempel ett närliggande bibliotek eller samhällshus.

  • id — primärnyckeln för denna tabell.
  • teacher_id — identifierar läraren som dessa platsinställningar tillhör.
  • teaching_location_type_id — den typ av plats där läraren vill administrera lektionen:online, lärarens plats, elevens plats eller någon neutral plats.
  • address_id — en refererad kolumn som lagrar den fullständiga adressen till mötesplatsen.

exp_level_teach_teacher Tabell:lärare ombeds också att specificera på vilka expertnivåer de är bekväma med att undervisa (nybörjare, medelnivå, expert).

student_comfortability Tabell:vissa lärare är obekväma med att undervisa vissa åldersgrupper, till exempel äldre. Portalen tillåter således lärare att också lista sina preferenser för elever med avseende på ålder och kön.

teacher_availability tabell:lagrar lärarens tillgänglighet under de kommande två veckorna och upp till en månad i förväg. Dessa uppgifter ändras av lärare med jämna mellanrum.

  • id — primärnyckeln för denna tabell.
  • teacher_id — identifierar läraren för vilken denna information lagras.
  • start_date_time — lagrar startdatum och tid när läraren är tillgänglig för att undervisa.
  • duration_in_min — anger hur mycket tid instruktören har för undervisning, i minuter.

teacher_earning Tabell:lagrar faktureringsavgifter för lärare. För närvarande har vi skapat kolumner för att ange faktureringsavgifter för 30-, 60-, 90- och 120-minutersföreläsningar.

Ämnesområde # 2:Studenthantering och engagemang

Detta område är dedikerat till att hålla reda på möten mellan elever och lärare. Liksom tabellen för lärare i det första ämnesområdet finns det en tabell för elever (det passande namnet student ) inom detta ämnesområde. Alla kolumner i den här tabellen är ganska enkla, så vi kommer inte att fördjupa oss i dem.

En annan tabell har titeln teacher_reservation . Detta är den faktiska tabellen som spårar möten mellan elever och lärare. När en elev väljer en viss lärare får de se den lärarens tillgänglighet. De måste välja en eller flera lediga platser för att göra en reservation med läraren. Dessutom måste eleven ange en undervisningsplats baserat på inställningarna för sin valda lärare. När eleven har fyllt i sin del av formuläret skickas reservationen till läraren för granskning och godkännande. Låt oss förtydliga några av kolumnerna för den här tabellen:

  • id — den primära nyckeln för tabellen. Ger en unik identitet till en individuell bokningsförfrågan.
  • student_id — identifierar eleven som gör bokningen.
  • teacher_id — identifierar läraren för vilken reservationen begärs.
  • teacher_teaching_location_id — lagrar information om platsen där eleven skulle vilja delta i lektioner. Denna plats måste matcha en av de som läraren har angett i deras inställningar.

Ämnesområde #3:Hantering av inspelad lektion

Denna portal låter lärare ladda upp inspelade lektioner. Varje session är märkt med en prenumerationskostnad som studenterna måste betala innan de får delta. Varje prenumeration kommer med ett utgångsdatum, så en session förblir öppen för visning tills studentens prenumeration går ut.

recorded_lesson tabell:lagrar grundläggande information om inspelade sessioner.

  • id — primärnyckel för tabellen som tilldelar ett unikt nummer till en individuell inspelad lektion.
  • subject — lagrar ämnesraden eller rubriken för en lektion.
  • lesson_category_id — en refererad kolumn som representerar den kategori som en lektion tillhör (t.ex. resor, matlagning, fysik, etc.).
  • teacher_id — identifierar instruktören som förberedde och laddade upp den här lektionen.
  • lesson_description — beskrivande kolumn som lagrar en kort beskrivning av lektionen.
  • video_location — Vanligtvis lagras videor på serverfilsystem och deras platser lagras i den här kolumnen. Filer anropas och görs tillgängliga för användare när så begärs.
  • lesson_transcript — lagra en fullständig transkription av videon/videorna för den här lektionen.
  • cost_to_subscribe — lagrar priset som en student måste betala för att prenumerera på videon.

lesson_subscription tabell:lagrar grundläggande information om studentprenumerationer.

  • id — primärnyckeln för denna tabell.
  • student_id — identifierar eleven som prenumererade på den här lektionen.
  • recorded_lesson_id — identifierar lektionen som eleven prenumererade på.
  • subscription_date — lagrar datumet då prenumerationen började. Det är vanligtvis samma datum som när betalningen gjordes för prenumerationen.
  • is_lifetime_subscription — många lektioner kommer med livstidsprenumeration, vilket innebär att en lektion kommer att finnas kvar hos dig för alltid när du väl har betalat för lektionen. Om värdet som lagras i den här kolumnen är "Y", finns det inget utgångsdatum för prenumerationen.
  • subscription_expiring_on — lagrar datumet då prenumerationen går ut. Om det är en livstidsprenumeration lagrar den här kolumnen värdet null.

Sammanfattning

Lärande ger människor möjlighet att avancera sina karriärer, förbättra sina liv och utöva det arbete de älskar. Den här applikationen kommer att hjälpa till att minska klyftan mellan efterfrågan och utbud för yrkesverksamma och kommer att skapa en online-inlärningsgemenskap där alla kan utforska, lära sig och undervisa.

Vilka ytterligare funktioner skulle du vilja lägga till i denna datamodell? Vi vill gärna höra dina tankar!


  1. Hur använder man osignerade int/long-typer med Entity Framework?

  2. Hierarkiska frågor i SQL Server 2005

  3. Skala PostgreSQL för stora mängder data

  4. Använda en sorteringsordningskolumn i en databastabell