| Version 4 (modified by , 6 days ago) ( diff ) |
|---|
Концептуален дизајн - ЕР Дијаграм и податочни побарувања
ЕР Дијаграм
Податочни барања
Ентитети
users – ентитет кој чува податоци за секаков тип корисници на системот (студент, професор, администратор)
- id (integer)
- name (varchar)
- embg (integer)
- surname (varchar)
- index (varchar)
- bday (timestamp)
- email (varchar, not null, unique)
- password (varchar, not null)
- role (enum: student, prof, admin)
- created_at (timestamp)
high_school – ентитет кој чува податоци за средношколското образование на студентот
- user_id* (integer, unique)
- gpa (float)
- type (enum: strucen, gimnazija)
contact – ентитет кој чува контакт податоци за корисникот
- user_id* (integer, unique)
- city (varchar)
- municipality (varchar)
- address (varchar)
- number (varchar)
- microsoft_email (varchar)
enrolled_semesters – ентитет кој чува податоци за запишани семестри од страна на студентот
- id (integer)
- quota (enum: privatna, drzavna)
- note_ (varchar)
- student_comment (varchar)
- created_at (timestamp)
- last_change (timestamp)
- completed (timestamp)
active_semesters – ентитет кој чува податоци за активните (тековните) семестри
- id (integer)
- year_ (integer)
- type (enum: summer, winter)
semesters_subjects – ентитет кој чува податоци за предметите запишани во определен семестар
- id (integer)
- signature (bool)
subjects – ентитет кој чува податоци за предметите
- id (integer)
- name (varchar, not null, unique)
- code (varchar, not null, unique)
- awarded_credits (integer)
- dependency_credit (integer)
major – ентитет кој чува податоци за студиските програми
- id (integer)
- name (varchar)
passed_subjects – ентитет кој чува податоци за положените предмети
- passed_id (integer)
- grade (enum: 6, 7, 8, 9, 10)
- date_passed (timestamp)
documents – ентитет кој чува податоци за официјалните документи
- id (integer)
- type (varchar)
- body (text)
- cost (integer)
token – ентитет кој чува податоци за токените за автентикација на корисникот
- id (integer)
- token (varchar)
- expires_at (timestamp)
- is_valid (bool)
Payment – ентитет кој чува податоци за уплатите на корисникот
- id (integer)
- amount (int)
- ukim (int)
enrollment_info – ентитет кој чува податоци за уписот на корисникот
- id (integer)
- quota (enum: privatna, drzavna)
- enrollment_year (integer)
Релации
has_hs (users ↔ high_school, 1:1) Секој корисник (студент) има поврзани средношколски податоци.
has_contact (users ↔ contact, 1:1) Секој корисник има поврзани контакт податоци.
has_token (users ↔ token, 1:N) Корисникот може да има повеќе токени за автентикација.
submits (users ↔ enrolled_semesters, 1:N) Корисникот може да запише повеќе семестри.
for_major (enrolled_semesters ↔ major, N:1) Секој запишан семестар припаѓа на определена студиска програма.
during (enrolled_semesters ↔ active_semesters, N:1) Секој запишан семестар се одвива во рамки на определен активен семестар.
registers (users ↔ enrollment_info, 1:N) Корисникот има информации за упис на студиска програма.
chosen_in (enrollment_info ↔ major, N:1) Информациите за упис се однесуваат на определена студиска програма.
pays (users ↔ Payment, 1:N) Корисникот може да изврши повеќе уплати.
for_enrollment (Payment ↔ enrolled_semesters, N:1) Секоја уплата се однесува на определен запишан семестар.
contains (enrolled_semesters ↔ semesters_subjects, 1:N) Секој запишан семестар содржи повеќе предмети.
enrolled_by (users ↔ semesters_subjects, 1:N) Секој запишан предмет во семестар припаѓа на определен студент.
taken_in (subjects ↔ semesters_subjects, 1:N) Секој предмет може да се слуша во рамки на повеќе запишани семестри.
teaches (users ↔ semesters_subjects, 1:N) Професорот предава определен предмет во определен семестар.
results_in (semesters_subjects ↔ passed_subjects, 1:1) Запишаниот предмет резултира со положен предмет.
owns (users ↔ documents, N:M) Корисникот може да поседува/бара повеќе документи, а еден документ може да припаѓа на повеќе корисници.
includes (major ↔ subjects, N:M) Студиската програма вклучува предмети, при што за секој предмет се чуваат задолжителен семестар (manditory_semester) и акредитација (akreditacija).
requires (subjects ↔ subjects, N:M) Предметот може да има предуслови, односно да зависи од положени други предмети.
teaches_subject (users ↔ subjects ↔ active_semesters, тернарна) Професорот предава определен предмет во определен активен семестар.
Историјат
Верзија 1 - Почетна верзија
Верзија 2
- Додадени се средношколски (high_school) и контакт (contact) податоци како посебни ентитети поврзани 1:1 со корисникот.
- Воведени се токени (token) за безбедна автентикација на корисникот.
Верзија 3
- Раздвоени се информациите за упис (enrollment_info) од запишаните семестри (enrolled_semesters).
- Додаден е ентитет за уплати (Payment) поврзан со запишаните семестри.
Верзија 4
- Воведена е зависност меѓу предмети (requires) за моделирање на предусловите.
- Доделувањето на професор на предмет е моделирано како тернарна релација (teaches_subject) меѓу корисник, предмет и активен семестар.
- Секој запишан предмет во семестар (semesters_subjects) дополнително се поврзува со студентот преку релацијата enrolled_by.
Статус
Завршено
Attachments (1)
- FINKI_ER_Diagram.drawio (1).png (466.8 KB ) - added by 6 days ago.
Download all attachments as: .zip

.png)