Changes between Version 15 and Version 16 of ERModel


Ignore:
Timestamp:
08/05/26 15:09:00 (17 hours ago)
Author:
231175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ERModel

    v15 v16  
    88=== Ентитети ===
    99
    10 1. **User** – ентитет кој чува податоци за крајните корисници (клиенти)
     101. **Account** – ентитет кој чува универзални податоци за секој корисник (обичен или експерт)
     11   - id (primary key, bigint)
     12   - email (string, задолжително)
     13   - password_hash (string, задолжително)
     14   - name (string, задолжително)
     15
     162. **User** – ентитет кој чува податоци за крајните корисници (клиенти)
    1117   - user_id (primary key, bigint)
    1218   - name (string, задолжително)
     
    2127   - points (int, задолжително)
    2228   - favoriteCourseIds (int[], задолжително)
    23 
    24 2. **Expert** – ентитет кој чува податоци за експертот
     29   - account_id (foreign key, bigint)
     30
     313. **Expert** – ентитет кој чува податоци за експертот
    2532   - expert_id (primary key, bigint)
    26    - email (string, задолжително)
    27    - password_hash (string, задолжително)
    28    - name (string, задолжително)
    29 
    30 3. **Enrollment** – ентитет кој чува податоци за превземање на курс од страна на клиент
     33   - account_id (foreign key, bigint)
     34
     354. **Enrollment** – ентитет кој чува податоци за превземање на курс од страна на клиент
    3136   - enrollment_id (primary key, bigint)
    3237   - enrollmentStatus (enum {pending, active, completed}, задолжително)
     
    3742   - course_version_id (foreign key, bigint)
    3843
    39 4. **Payment** – ентитет кој чува податоци за наплатата на корисниците за курс
     445. **Payment** – ентитет кој чува податоци за наплатата на корисниците за курс
    4045   - payment_id (primary key, bigint)
    4146   - ammount(double, задолжително)
     
    4550   - enrollmend_id (foreign_key, bigint)
    4651
    47 5. **Review** – ентитет кој чува податоци за оценките и коментарите за курс
     526. **Review** – ентитет кој чува податоци за оценките и коментарите за курс
    4853   - review_id (primary key, bigint)
    4954   - rating (int, задолжително)
     
    5257   - enrollmend_id (foreign_key, bigint)
    5358
    54 6. **Course Version** – ентитет кој чува податоци за верзиите на курсеви
     597. **Course Version** – ентитет кој чува податоци за верзиите на курсеви
    5560   - course_version_id (primary key, bigint)
    5661   - versionNumber (int, задолжително)
     
    5964   - course_id (foreign_key, bigint)
    6065
    61 7. **Course** – ентитет кој чува податоци за курсевите
     668. **Course** – ентитет кој чува податоци за курсевите
    6267   - course_id (primary key, bigint)
    6368   - color (string, задолжително)
     
    6772   - prica (double, задолжително)
    6873
    69 8. **Course Translate** – ентитет кој чува податоци за различните преведувања за одреден курс
     749. **Course Translate** – ентитет кој чува податоци за различните преведувања за одреден курс
    7075   - course_translate_id (primary key, bigint)
    7176   - language (string, задолжително)
     
    7883   - course_id (foreign_key, bigint)
    7984
    80 9. **Course Content** – ентитет кој чува податоци за различните модули за одреден курс
     8510. **Course Content** – ентитет кој чува податоци за различните модули за одреден курс
    8186   - course_content_id (primary key, bigint)
    8287   - position (int, задолжително)
     
    8489
    8590
    86 10. **Course Content Translate** – ентитет кој чува податоци за различните преводи на модули за одреден курс
     9111. **Course Content Translate** – ентитет кој чува податоци за различните преводи на модули за одреден курс
    8792   - course_content_translate_id (primary key, bigint)
    8893   - language (string, задолжително)
     
    9196
    9297
    93 11. **Course Lecture** – ентитет кој чува податоци за различните лекции за одреден модул на курс
     9812. **Course Lecture** – ентитет кој чува податоци за различните лекции за одреден модул на курс
    9499   - course_lecture_id (primary key, bigint)
    95100   - position(int, задолжително)
     
    99104
    100105
    101 12. **Course Lecture Translate** – ентитет кој чува податоци за различните преведувања за лекции за одреден модул на курс
     10613. **Course Lecture Translate** – ентитет кој чува податоци за различните преведувања за лекции за одреден модул на курс
    102107   - course_lecture_translate_id (primary key, bigint)
    103108   - language (string, задолжително)
     
    108113   - course_lecture_id (foreign_key, bigint)
    109114
    110 13. **User Course Progress** – ентитет кој чува податоци за прогресот на корисник за лекција на одреден курс
     11514. **User Course Progress** – ентитет кој чува податоци за прогресот на корисник за лекција на одреден курс
    111116   - user_course_progress_id (primary key, bigint)
    112117   - isCompleted (boolean, задолжително)
     
    115120   - enrollment_id (foreign_key, bigint)
    116121
    117 
    118 14. **Verification Token** – ентитет кој чува податоци за токените кои се креирани за корисници да го верифицираат нивниот мејл
     12215. **Verification Token** – ентитет кој чува податоци за токените кои се креирани за корисници да го верифицираат нивниот мејл
    119123   - verification_token_uuid (primary key, uuid)
    120124   - expiresAt (timestamp, задолжително)
     
    122126   - user_id (foreign_key, bigint)
    123127
    124 15. **Tag** – ентитет кој чува податоци за тагови (вештини и интереси) кои се мапираат за корисници и курсеви
     12816. **Tag** – ентитет кој чува податоци за тагови (вештини и интереси) кои се мапираат за корисници и курсеви
    125129   - tag_id (primary key, bigint)
    126130   - tagType (enum {skill, topic}, задолжително)
    127131
    128 16. ** Tag Translate** – ентитет кој чува податоци за различни преведувања за секој од таговите (вештини и интереси)
     13217. ** Tag Translate** – ентитет кој чува податоци за различни преведувања за секој од таговите (вештини и интереси)
    129133   - tag_translate_id (primary key, bigint)
    130134   - language (enum {en, mk}, задолжително)
     
    132136   - tag_id (foreign_key, bigint)
    133137
    134 17. **User Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој корисник
     13818. **User Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој корисник
    135139   - tag_id (foreign_key, bigint)
    136140   - user_id (foreign_key, bigint)
    137141
    138 18. **Course Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој курс
     14219. **Course Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој курс
    139143   - tag_id (foreign_key, bigint)
    140144   - course_id (foreign_key, bigint)
    141145
    142 18. **Meeting Email Reminder** – ентитет кој чува податоци за на кои корисници треба да им се испрати потсетник на нивната емаил адреса
     14620. **Meeting Email Reminder** – ентитет кој чува податоци за на кои корисници треба да им се испрати потсетник на нивната емаил адреса
    143147   - id (primary key, bigint)
    144148   - meting_at (timestamp, задолжително)
     
    148152   - user_id (foreign_key, bigint)
    149153
     15421. **User Favorite Course** – ентитет кој чува податоци за омилени курсеви на корисници
     155   - id (primary key, bigint)
     156   - user_id (foreign_key, bigint)
     157   - course_id (foreign_key, bigint)
     158
    150159----
    151160=== Релации ===
     
    219228   Секој User може да има повеќе Meeting_Email_Reminder.
    220229   Секој Meeting_Email_Reminder мора да има барем еден User.
     230
     23118. **user_is_favoriting** (USER ↔ USER_FAVORITE_COURSE, 1:N)
     232   Секој User може да има повеќе User_Favorite_Course.
     233   Секој User_Favorite_Course мора да има барем еден User.
     234
     23519. **course_is_favorited** (COURSE ↔ USER_FAVORITE_COURSE, 1:N)
     236   Секој Course може да има повеќе User_Favorite_Course.
     237   Секој User_Favorite_Course мора да има барем еден Course.
    221238----