| Version 8 (modified by , 4 hours ago) ( diff ) |
|---|
Фаза 2Б - Полнење на табелите и погледи
Полнење на табелите
Податоците беа генерирани со комбинација на CSV датотеки за референтни податоци и SQL скрипта која користи generate_series() за големите табели. Табелите се полнети во серии од 500.000 редови за да се избегнат проблеми со дисковен простор на серверот. Генерираните податоци се што е можно пореалистични — имиња од македонски именски пул, реални адреси, валидни формати за е-пошта и телефон.
Број на Редови по Табела
| Табела | Број на Редови |
| User | 10,098,000 |
| Studies | 20,647,814 |
| Diploma | 10,323,907 |
| User_Skill | 21,746,369 |
| Employment | 21,971,721 |
| SalaryHistory | 21,971,721 |
| Position | 3,000,000 |
| Promotion | 7,323,907 |
| Internship | 1,464,782 |
| AdditionalCourse_User | 3,661,954 |
| Startup | 30 |
| Founder | 116,196 |
| Event | 3,000 |
| Event_User | 107,969 |
| Award | 1,009,800 |
| University | 10 |
| Faculty | 15 |
| StudyProgram | 150 |
| Industry | 44 |
| Company | 5,000 |
| Skill | 65 |
| AdditionalCourse | 20 |
Погледи (Views)
v_companies_by_industry
Прикажува листа на компании збогатена со информации за индустријата и секторот на кој припаѓаат. Се користи при пребарување и филтрирање на компании по индустрија, на пример кога корисникот бара вработување во одреден сектор или кога системот генерира статистики за застапеноста на alumni по индустрии.
CREATE OR REPLACE VIEW public.v_companies_by_industry AS
SELECT c.company_id,
c.name AS company_name,
c.number_employees,
i.industry_name,
i.sector_category
FROM company c
JOIN industry i ON i.industry_id = c.industry_id;
v_employment_history
Прикажува целосна историја на вработувања на корисниците — компанија, период, тип на вработување и дали е тековно. Се користи при приказ на работното CV на alumni, каде апликацијата треба да прикаже хронолошки список на сите претходни и тековни вработувања.
CREATE OR REPLACE VIEW public.v_employment_history AS
SELECT u.user_id,
u.first_name,
u.last_name,
c.name AS company_name,
e.start_date,
e.end_date,
e.employment_type,
e.is_current
FROM employment e
JOIN "User" u ON u.user_id = e.user_id
JOIN company c ON c.company_id = e.company_id;
v_event_participants
Прикажува листа на учесници за секој настан, заедно со нивната улога. Се користи при управување со настани — организаторите можат да го видат списокот на пријавени alumni, а корисниците можат да ги прегледаат настаните на кои присуствувале.
CREATE OR REPLACE VIEW public.v_event_participants AS
SELECT e.event_id,
e.name AS event_name,
e.date,
u.user_id,
u.first_name,
u.last_name,
eu.role
FROM event e
JOIN event_user eu ON eu.event_id = e.event_id
JOIN "User" u ON u.user_id = eu.user_id;
v_faculty_programs
Прикажува студиски програми збогатени со информации за факултетот и универзитетот на кој припаѓаат. Се користи при приказ на каталогот на студиски програми во апликацијата, каде нов корисник може да ја избере програмата на која студирал или студира.
CREATE OR REPLACE VIEW public.v_faculty_programs AS
SELECT f.faculty_id,
f.name AS faculty_name,
u.name AS university_name,
sp.study_program_id,
sp.program_name,
sp.degree_type,
sp.duration_years
FROM faculty f
JOIN university u ON u.university_id = f.university_id
JOIN studyprogram sp ON sp.faculty_id = f.faculty_id;
v_startups_with_founders
Прикажува стартапи заедно со нивните основачи (корисниците кои ги основале). Се користи при приказ на претприемачката активност на alumni — корисниците можат да ги прегледаат стартапите на своите колеги или да го промовираат сопствениот стартап.
CREATE OR REPLACE VIEW public.v_startups_with_founders AS
SELECT st.startup_id,
st.name AS startup_name,
st.status,
u.user_id,
u.first_name,
u.last_name
FROM startup st
JOIN founder f ON f.startup_id = st.startup_id
JOIN "User" u ON u.user_id = f.user_id;
v_student_academic_profile
Прикажува целосен академски профил на корисник — студиска програма, факултет, универзитет, период и статус на студии. Се користи при приказ на академскиот дел од профилот на alumni, каде другите корисници или работодавачи можат да ги видат образовните квалификации.
CREATE OR REPLACE VIEW public.v_student_academic_profile AS
SELECT u.user_id,
u.first_name,
u.last_name,
sp.program_name,
f.name AS faculty_name,
uni.name AS university_name,
s.start_date,
s.end_date,
s.status
FROM "User" u
JOIN studies s ON s.user_id = u.user_id
JOIN studyprogram sp ON sp.study_program_id = s.study_program_id
JOIN faculty f ON f.faculty_id = sp.faculty_id
JOIN university uni ON uni.university_id = f.university_id;
v_students_per_program
Прикажува вкупниот број на студенти запишани на секоја студиска програма. Се користи за административни извештаи и статистики — администраторите можат да ја следат популарноста на студиските програми и бројот на alumni по програма.
CREATE OR REPLACE VIEW public.v_students_per_program AS
SELECT sp.study_program_id,
sp.program_name,
COUNT(s.user_id) AS total_students
FROM studyprogram sp
LEFT JOIN studies s ON s.study_program_id = sp.study_program_id
GROUP BY sp.study_program_id, sp.program_name;
v_user_skills
Прикажува листа на вештини (ime и тип) кои ги поседува секој корисник. Се користи при приказ на профилот на alumni и при пребарување на кандидати по специфични вештини — на пример работодавач бара alumni со Python и Machine Learning вештини.
CREATE OR REPLACE VIEW public.v_user_skills AS
SELECT u.user_id,
u.first_name,
u.last_name,
s.skill_name,
s.type
FROM "User" u
JOIN user_skill us ON us.user_id = u.user_id
JOIN skill s ON s.skill_id = us.skill_id;
v_user_full_career
Прикажува целосен преглед на кариерата на корисник — студии, вработувања и компании на едно место. Се користи при генерирање на целосен профил на alumni за работодавачи, каде на еден поглед се гледаат и образованието и работното искуство на кандидатот.
CREATE OR REPLACE VIEW public.v_user_full_career AS
SELECT u.user_id,
u.first_name,
u.last_name,
sp.program_name,
s.status AS study_status,
e.start_date AS employment_start,
e.end_date AS employment_end,
e.employment_type,
c.name AS company_name
FROM "User" u
LEFT JOIN studies s ON s.user_id = u.user_id
LEFT JOIN studyprogram sp ON sp.study_program_id = s.study_program_id
LEFT JOIN employment e ON e.user_id = u.user_id
LEFT JOIN company c ON c.company_id = e.company_id;
