Changes between Version 2 and Version 3 of RelationalDesign


Ignore:
Timestamp:
09/13/26 15:19:30 (2 weeks ago)
Author:
233149
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • RelationalDesign

    v2 v3  
    1111==== Табели
    1212
    13  * users ('''__id__''', '''name''', embg, '''surname''', index, bday, '''email''', '''password''', '''role''', created_at)
    14  * high_school ('''__user_id__'''*(users), '''gpa''', '''type''')
    15  * contact ('''__user_id__'''*(users), '''city''', '''municipality''', '''address''', '''number''', microsoft_email)
    16  * enrolled_semesters ('''__id__''', user_id*(users), '''quota''', major_id*(major), note_, student_comment, created_at, last_change, completed, semester_id*(active_semesters))
    17  * active_semesters ('''__id__''', '''year_''', '''type''')
    18  * semesters_subjects ('''__id__''', user_id*(users), enrolled_semesters_id*(enrolled_semesters), subjects_id*(subjects), professor_id*(users), signature)
     13 * users ('''__id__''', '''name''', embg, '''surname''', index, bday, '''email''', '''password''', '''role''', quota, enrollment_year, created_at)
     14 * high_school ('''__id__''', '''user_id'''*(users), '''gpa''', '''type''')
     15 * contact ('''__id__''', '''user_id'''*(users), '''city''', '''municipality''', '''address''', '''number''', microsoft_email)
     16 * major ('''__id__''', '''name''')
     17 * active_semesters ('''__id__''', '''year''', '''type''')
    1918 * subjects ('''__id__''', '''name''', '''code''', '''awarded_credits''', dependency_credit)
    20  * major ('''__id__''', '''name''')
    21  * major_subjects ('''__major_id__'''*(major), '''__subject_id__'''*(subjects), '''manditory_semester''', '''akreditacija''')
    22  * passed_subjects ('''__passed_id__''', enrolled_id*(semesters_subjects), '''grade''', '''date_passed''')
     19 * enrolled_semesters ('''__id__''', '''user_id'''*(users), '''quota''', '''major_id'''*(major), note, student_comment, created_at, last_change, completed, '''semester_id'''*(active_semesters))
     20 * semesters_subjects ('''__id__''', '''enrolled_semesters_id'''*(enrolled_semesters), '''subjects_id'''*(subjects), '''professor_id'''*(users), '''signature''')
     21 * passed_subjects ('''__id__''', '''enrolled_id'''*(semesters_subjects), '''grade''', '''date_passed''')
     22 * documents ('''__id__''', '''type''', '''body''', '''cost''')
    2323 * user_documents ('''__user_id__'''*(users), '''__document_id__'''*(documents))
    24  * documents ('''__id__''', '''type''', '''body''', '''cost''')
    25  * token ('''__id__''', user_id*(users), '''token''', '''expires_at''', '''is_valid''')
    26  * Payment ('''__id__''', user_id*(users), enrollment_id*(enrolled_semesters), '''amount''', '''ukim''')
    27  * enrollment_info ('''__id__''', user_id*(users), '''quota''', major_id*(major), '''enrollment_year''')
    28  * DependencySubject (subject_id*(subjects), dependency_id*(subjects))
    29  * Professour_subjects (prof_id*(users), active_semester_id*(active_semesters), subject_id*(subjects))
     24 * token ('''__id__''', '''user_id'''*(users), '''token''', '''expires_at''', '''is_valid''')
     25 * payment ('''__id__''', '''user_id'''*(users), '''enrollment_id'''*(enrolled_semesters), '''amount''')
     26 * major_subjects ('''__major_id__'''*(major), '''__subject_id__'''*(subjects), '''manditory_semester''')
     27 * dependency_subject ('''__subject_id__'''*(subjects), '''__dependency_id__'''*(subjects))
     28 * professour_subjects ('''__prof_id__'''*(users), '''__active_semester_id__'''*(active_semesters), '''__subject_id__'''*(subjects))
    3029
    3130=== DDL скрипта за бришење на табелите и креирање на табелите
    … …  
    3635
    3736 [attachment:dml.sql]
     37
     38=== dbdiagram.io (DBML) код
     39
     40 [attachment:iknow.dbml]
    3841
    3942=== Релациски дијаграм
    … …  
    4649
    4750 '''Верзија 2'''
    48  * Додадени се табелите high_school и contact поврзани преку user_id како примарен и надворешен клуч кон users.
     51 * Додадени се табелите high_school и contact поврзани 1:1 со users.
    4952 * Додадена е табелата token за чување на токени за автентикација.
    5053
    … …  
    5457
    5558 '''Верзија 4'''
    56  * Додадена е табелата DependencySubject за моделирање на предуслови меѓу предмети.
    57  * Додадена е табелата Professour_subjects (професор ↔ предмет ↔ активен семестар).
    58  * Во semesters_subjects задржан е user_id како надворешен клуч кон users (студентот на кого му припаѓа записот).
     59 * Додадена е табелата dependency_subject за моделирање на предуслови меѓу предмети.
     60 * Додадена е табелата professour_subjects (професор ↔ предмет ↔ активен семестар).
     61
     62 '''Верзија 5'''
     63 * Отстранета е табелата enrollment_info; нејзините атрибути quota и enrollment_year се преместени во табелата users.
     64 * Отстранет е надворешниот клуч user_id од semesters_subjects – студентот се добива преку enrolled_semesters.user_id.
     65 * Отстранет е атрибутот ukim од payment и akreditacija од major_subjects.
     66 * Табелите high_school и contact добиваат сопствен id како примарен клуч, а user_id останува UNIQUE NOT NULL надворешен клуч (1:1).
     67 * Преименувани колони заради усогласување со ЕР дијаграмот: year_ → year, note_ → note, passed_subjects.passed_id → id.
     68 * Додадени се ограничувања за интегритет: UNIQUE (user_id, semester_id) во enrolled_semesters, UNIQUE на passed_subjects.enrolled_id (1:1 со semesters_subjects), UNIQUE (year, type) во active_semesters и CHECK (subject_id <> dependency_id) во dependency_subject.
    5969
    6070=== Статус