== Логички и физички дизајн - Креирање база податоци (со SQL DDL) === Релациско мапирање ==== Ознаки * Примарните клучеви се означени со bold и underline '''__PK__''' * Надворешните клучеви се означени со FK* за кои во заграда () е напишана табелата која ја референцираат. * Задолжителните атрибути се болдирани. ==== Табели * users ('''__id__''', '''name''', embg, '''surname''', index, bday, '''email''', '''password''', '''role''', created_at) * high_school ('''__user_id__'''*(users), '''gpa''', '''type''') * contact ('''__user_id__'''*(users), '''city''', '''municipality''', '''address''', '''number''', microsoft_email) * enrolled_semesters ('''__id__''', user_id*(users), '''quota''', major_id*(major), note_, student_comment, created_at, last_change, completed, semester_id*(active_semesters)) * active_semesters ('''__id__''', '''year_''', '''type''') * semesters_subjects ('''__id__''', user_id*(users), enrolled_semesters_id*(enrolled_semesters), subjects_id*(subjects), professor_id*(users), signature) * subjects ('''__id__''', '''name''', '''code''', '''awarded_credits''', dependency_credit) * major ('''__id__''', '''name''') * major_subjects ('''__major_id__'''*(major), '''__subject_id__'''*(subjects), '''manditory_semester''', '''akreditacija''') * passed_subjects ('''__passed_id__''', enrolled_id*(semesters_subjects), '''grade''', '''date_passed''') * user_documents ('''__user_id__'''*(users), '''__document_id__'''*(documents)) * documents ('''__id__''', '''type''', '''body''', '''cost''') * token ('''__id__''', user_id*(users), '''token''', '''expires_at''', '''is_valid''') * Payment ('''__id__''', user_id*(users), enrollment_id*(enrolled_semesters), '''amount''', '''ukim''') * enrollment_info ('''__id__''', user_id*(users), '''quota''', major_id*(major), '''enrollment_year''') * DependencySubject (subject_id*(subjects), dependency_id*(subjects)) * Professour_subjects (prof_id*(users), active_semester_id*(active_semesters), subject_id*(subjects)) === DDL скрипта за бришење на табелите и креирање на табелите [attachment:ddl.sql] === DML скрипта за полнење на табелите со податоци [attachment:dml.sql] === Релациски дијаграм [[Image(FINKI_Relational_Diagram.png, width=100%)]] === Историјат '''Верзија 1''' - Почетна верзија '''Верзија 2''' * Додадени се табелите high_school и contact поврзани преку user_id како примарен и надворешен клуч кон users. * Додадена е табелата token за чување на токени за автентикација. '''Верзија 3''' * Раздвоени се табелите enrollment_info и enrolled_semesters. * Додадена е табелата Payment со надворешни клучеви кон users и enrolled_semesters. '''Верзија 4''' * Додадена е табелата DependencySubject за моделирање на предуслови меѓу предмети. * Додадена е табелата Professour_subjects (професор ↔ предмет ↔ активен семестар). * Во semesters_subjects задржан е user_id како надворешен клуч кон users (студентот на кого му припаѓа записот). === Статус ''' [[span(style=color: #008000, Завршено )]] '''