Database
 sql >> Base de Dados >  >> RDS >> Database

Modelando um Open Marketplace para Educação


Manter-se atualizado com as últimas mudanças em tecnologia é necessário se você quiser avançar no competitivo mercado de trabalho de hoje. Neste artigo, construiremos um modelo de dados para portais online que oferecem uma plataforma mais envolvente para aprender novas habilidades, usando Native Monks como nosso guia.

Introdução


Em um de nossos artigos recentes, construímos um modelo de dados de trabalho para um portal de e-learning e explicamos como os cursos podem ser divididos em aulas gravadas/transcritas e disponibilizadas aos alunos. No entanto, há alguns que preferem aprender diretamente com os professores em sessões mais envolventes e pessoais. Ao contrário de plataformas como Udemy e Coursera, o Native Monks permite que os alunos contratem professores (localmente ou online) e aprendam habilidades diretamente com eles em aulas individuais administradas online ou pessoalmente.

Requisitos


Como a plataforma permite que os alunos pesquisem professores de acordo com seus próprios critérios, ela dá muita ênfase à construção do perfil dos professores. Em outras palavras, a plataforma coleta o máximo de informações possível dos professores para fornecer melhores recomendações de pesquisa aos alunos.

Os professores da plataforma podem se especializar em qualquer área, como tecnologia, culinária, artes, manutenção e serviço e assim por diante. As habilidades que exigem muito trabalho e explicação são frequentemente ensinadas aos alunos pessoalmente, enquanto aquelas que são relativamente simples são melhor administradas on-line por meio de palestras em vídeo que os alunos podem comprar de seus instrutores selecionados.

Com esses requisitos em mente, dividimos todo o nosso modelo de dados em três áreas principais:
  1. Criação de perfil para professores
  2. Gerenciamento e engajamento dos alunos
  3. Gerenciamento de aulas gravadas

Vejamos mais de perto cada uma dessas áreas.

Modelo de dados




Área de assunto nº 1:Criação de perfil para professores



Esta área da plataforma diz respeito à coleta de informações básicas dos professores, como suas preferências por alunos, localização, disponibilidade, nível de conforto e assim por diante. Quando os alunos navegam na plataforma, eles recebem uma lista de professores que melhor correspondem às suas preferências. Há uma variedade de tabelas nesta área que discutiremos abaixo.

teacher table:armazena informações básicas sobre os instrutores. A maioria das colunas nesta tabela são autoexplicativas, mas vamos elaborar algumas que podem não ser tão óbvias:

  • max_travel_distance — representa a distância máxima que um professor pode percorrer para se encontrar com um aluno. Um valor zero indica que o professor não pode viajar para ensinar os alunos.
  • cost_to_travel — armazena um valor enviado por um professor que significa as taxas adicionais que serão cobradas pela viagem para se encontrar com um aluno.
  • profile_image — armazena a foto do perfil de um professor. Como os professores não precisam postar fotos de perfil, o valor padrão é nulo se uma alternativa não for especificada.
  • teaching_since — armazena um valor que representa o ano em que o instrutor começou a lecionar. Isso permite que os alunos tenham uma ideia melhor da experiência de um professor.
  • brief_description — armazena uma breve descrição sobre o professor.
  • timezone_id — armazena as informações de fuso horário de um professor, permitindo que alunos e

teacher_teaching_location table:armazena as preferências de localização de um professor, que devem ser especificadas ao construir seu perfil. Alguns professores preferem ministrar aulas em seu próprio local ou no local de seus alunos, mas outros preferem ministrar aulas em uma área pública, como uma biblioteca próxima ou centro comunitário.
  • id — a chave primária para esta tabela.
  • teacher_id — identifica o professor a quem essas preferências de localização pertencem.
  • teaching_location_type_id — o tipo de local onde o professor gostaria de ministrar a aula:on-line, o local do professor, o local do aluno ou algum local neutro.
  • address_id — uma coluna referenciada que armazena o endereço completo do local da reunião.

exp_level_teach_teacher tabela:os professores também são solicitados a especificar os níveis de especialização em que se sentem confortáveis ​​para ensinar (iniciante, intermediário, especialista).

student_comfortability mesa:alguns professores se sentem desconfortáveis ​​em ensinar determinadas faixas etárias, como os idosos. Assim, o portal permite que os professores também listem suas preferências para os alunos em relação à idade e gênero.

teacher_availability table:armazena a disponibilidade do professor para as próximas duas semanas e até um mês de antecedência. Esses detalhes são modificados pelos professores periodicamente.
  • id — a chave primária para esta tabela.
  • teacher_id — identifica o professor para quem essas informações são armazenadas.
  • start_date_time — armazena a data e hora de início em que o professor está disponível para ensinar.
  • duration_in_min — indica quanto tempo o instrutor tem para ensinar, em minutos.

teacher_earning tabela:armazena as taxas de cobrança para professores. Por enquanto, criamos colunas para especificar as taxas de cobrança para palestras de 30, 60, 90 e 120 minutos.

Área de assunto nº 2:gerenciamento e envolvimento dos alunos



Esta área é dedicada a manter o controle de compromissos entre alunos e professores. Assim como a tabela para professores na primeira disciplina, há uma tabela para alunos (apropriadamente chamada de student ) nesta área temática. Todas as colunas nesta tabela são bastante diretas, então não vamos nos aprofundar nelas.

Outra tabela é intitulada teacher_reservation . Esta é a tabela real que rastreia os compromissos entre alunos e professores. Quando um aluno seleciona um professor específico, ele vê a disponibilidade desse instrutor. Eles são obrigados a selecionar uma ou mais vagas disponíveis para fazer uma reserva com o professor. Além disso, o aluno deve especificar um local de ensino com base nas preferências do professor selecionado. Depois que o aluno preencher sua parte do formulário, a reserva será enviada ao professor para revisão e aprovação. Vamos esclarecer algumas das colunas desta tabela:

  • id — a chave primária da tabela. Dá uma identidade única a uma solicitação de reserva individual.
  • student_id — identifica o aluno que está fazendo a reserva.
  • teacher_id — identifica o professor para quem a reserva está sendo solicitada.
  • teacher_teaching_location_id — armazena informações sobre o local onde o aluno gostaria de assistir às aulas. Esse local deve corresponder a um dos especificados pelo professor nas preferências dele.

Área de assunto nº 3:Gerenciamento de aulas gravadas



Este portal permite que os professores carreguem aulas gravadas. Cada sessão é marcada com um custo de assinatura que os alunos devem pagar antes de poderem participar. Cada assinatura vem com uma data de expiração, portanto, uma sessão permanece aberta para visualização até que a assinatura do aluno expire.

recorded_lesson table:armazena informações básicas sobre sessões gravadas.

  • id — chave primária para a tabela que atribui um número exclusivo a uma aula individual gravada.
  • subject — armazena a linha de assunto ou o título de uma lição.
  • lesson_category_id — uma coluna referenciada que representa a categoria à qual uma aula pertence (por exemplo, viagem, culinária, física etc.).
  • teacher_id — identifica o instrutor que preparou e carregou esta lição.
  • lesson_description — coluna descritiva que armazena uma breve descrição sobre a lição.
  • video_location — normalmente, os vídeos são armazenados em sistemas de arquivos do servidor e seus locais são armazenados nesta coluna. Os arquivos são invocados e disponibilizados aos usuários quando solicitados.
  • lesson_transcript — armazene uma transcrição completa dos vídeos desta lição.
  • cost_to_subscribe — armazena o preço que um aluno deve pagar para se inscrever no vídeo.

lesson_subscription table:armazena informações básicas sobre assinaturas de alunos.
  • id — a chave primária para esta tabela.
  • student_id — identifica o aluno que se inscreveu nesta lição.
  • recorded_lesson_id — identifica a lição na qual o aluno se inscreveu.
  • subscription_date — armazena a data de início da assinatura. Geralmente, é a mesma data em que o pagamento foi feito para a assinatura.
  • is_lifetime_subscription - muitas aulas vêm com assinatura vitalícia, o que significa que uma aula permanecerá com você para sempre depois que você pagar pela aula. Se o valor armazenado nesta coluna for 'Y', não há data de expiração para a assinatura.
  • subscription_expiring_on — armazena a data em que a assinatura expirará. Se for uma assinatura vitalícia, esta coluna armazena um valor nulo.

Resumo


O aprendizado capacita as pessoas a avançar em suas carreiras, melhorar suas vidas e buscar o trabalho que amam. Este aplicativo ajudará a reduzir a lacuna entre demanda e oferta de profissionais e criará uma comunidade de aprendizado on-line onde qualquer pessoa pode explorar, aprender e ensinar.

Quais recursos adicionais você gostaria de adicionar a esse modelo de dados? Adoraríamos ouvir seus pensamentos!