wiki:Ph1

Version 3 (modified by 233149, 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)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.