wiki:DatabaseCreation

Version 9 (modified by 231067, 6 days ago) ( diff )

--

Database Creation

Во оваа фаза се прикажани DDL скриптата за креирање на базата, python скриптата за креирање на податоци за полнење на базата и погледите за приказ на често потребни податоци.

DDL скрипта за креирање на табелите

ddl_najdi_mentor.sql

Оваа DDL скрипта претставува дизајн на релациона база на податоци за систем за поврзување на студенти и ментори. Базата е архитектурно структурирана да поддржи комплетен работен тек во една високообразовна институција, од првичниот избор на ментор, до целосна реализација на менторството.

Дизајнот обезбедува висок степен на нормализација, а табелите се поделени во неколку клучни модули:

  • Системот започнува со основа за образовните институции преку табелите University, Faculty, StudyProgram и Subject. Централната табела User ги чува профилите на сите корисници (студенти, професори), додека преку Role, Permission и нивните поврзувачки табели се регулираат привилегиите за пристап.
  • Табелата TopicSuggestion овозможува предлагање и следење на статусот на слободни теми. Откако темата ќе се резервира, се креира запис во Mentorship кој ги спојува студентот, менторот и темата. Динамиката на работа и напредокот на студентот се водат преку табелата Task, каде строго се следат роковите и статусот на секоја задача.
  • За да се олесни соработката, базата содржи вграден модул за директно допишување. Табелите Chat и Message ја чуваат историјата на комуникација меѓу менторот и студентот. Паралелно, табелата Notification е дизајнирана навремено да ги известува корисниците за нови пораки, статуси на задачи или промени во менторството.
  • За полесно пронаоѓање на идеален ментор, базата ги мапира интересите на корисниците преку Interest и User_Interest, и дополнително, преку табелата CommentOpinion, се овозможува оставање на повратни информации и оцена за менторите.
  • Скриптата користи строги FOREIGN KEY ограничувања со цел да се спречат аномалии. На пример, не е возможно да се избрише корисник кој има активно менторство, ниту да се додели тема која веќе е означена како зафатена.

Python скрипта за пополнување на табелите

skripta_najdi_mentor.py

Оваа Python скрипта ја користи библиотеката Faker за автоматско генерирање на милиони тест-податоци во CSV формат користејќи македонски имиња на личности, предмети, факултети, универзитети и слично. Нејзината главна намена е брзо и масовно полнење на сите табели во базата со огромно количество податоци (до 10 милиони редови по табела), со што се овозможува реална проверка на перформансите на системот.

Погледи

views_najdi_mentor.sql

  1. vw_student_advanced_portfolio: Прикажува напредна статистика за секој студент, вклучувајќи на колку предмети е запишан, вкупен број на менторства, како и број на навреме завршени наспроти задоцнети задачи.
  1. vw_mentor_conversion_and_success_matrix: Ги оценува и рангира менторите врз основа на нивната активност, пресметувајќи го процентот на нивни прифатени теми и вкупниот број на успешни менторства.
  1. vw_student_progress_and_critical_alerts: Го следи процентуалниот напредок во секое менторство и директно ги излистува критичните задачи (оние на кои им поминал крајниот рок, а не се завршени).
  1. vw_university_academic_hierarchy: Дава преглед на структурата од Универзитет до Предмет, прикажувајќи колку студенти слушаат одреден предмет и колку активни менторства произлегле од него.
  1. vw_system_mentorship_integrity_audit: Служи како алатка која ја проверува базата, така што открива изолирани записи (пр. менторство каде студентот е избришан) или неактивни менторства без задачи.
  1. vw_chat_analytics: Ги сумира информациите за секој разговор помеѓу студент и ментор, прикажувајќи ја последната испратена порака, вкупниот број на пораки и бројот на непрочитани пораки.
  1. vw_mentor_workload_summary: Дава брз преглед на моменталниот товар на менторите преку бројот на активни менторства и бројот на тековни (незавршени) задачи кои ги надгледуваат.
  1. vw_subject_topic_conversion: Анализира колку предложените теми за одреден предмет се реално интересни, пресметувајќи процент на тоа колку од нив се доделени на студент.
  1. vw_university_faculty_basic_stats: Едноставен преглед кој покажува колку различни студиски програми нуди секој факултет во рамки на даден универзитет.
  1. vw_notification_center: Ги спојува сите системски нотификации на едно место, прикажувајќи за кој корисник се наменети, дали се прочитани и со која порака или коментар се поврзани.

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.