Changes between Version 15 and Version 16 of ERModel
- Timestamp:
- 08/05/26 15:09:00 (17 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ERModel
v15 v16 8 8 === Ентитети === 9 9 10 1. **User** – ентитет кој чува податоци за крајните корисници (клиенти) 10 1. **Account** – ентитет кој чува универзални податоци за секој корисник (обичен или експерт) 11 - id (primary key, bigint) 12 - email (string, задолжително) 13 - password_hash (string, задолжително) 14 - name (string, задолжително) 15 16 2. **User** – ентитет кој чува податоци за крајните корисници (клиенти) 11 17 - user_id (primary key, bigint) 12 18 - name (string, задолжително) … … 21 27 - points (int, задолжително) 22 28 - favoriteCourseIds (int[], задолжително) 23 24 2. **Expert** – ентитет кој чува податоци за експертот 29 - account_id (foreign key, bigint) 30 31 3. **Expert** – ентитет кој чува податоци за експертот 25 32 - 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 35 4. **Enrollment** – ентитет кој чува податоци за превземање на курс од страна на клиент 31 36 - enrollment_id (primary key, bigint) 32 37 - enrollmentStatus (enum {pending, active, completed}, задолжително) … … 37 42 - course_version_id (foreign key, bigint) 38 43 39 4. **Payment** – ентитет кој чува податоци за наплатата на корисниците за курс44 5. **Payment** – ентитет кој чува податоци за наплатата на корисниците за курс 40 45 - payment_id (primary key, bigint) 41 46 - ammount(double, задолжително) … … 45 50 - enrollmend_id (foreign_key, bigint) 46 51 47 5. **Review** – ентитет кој чува податоци за оценките и коментарите за курс52 6. **Review** – ентитет кој чува податоци за оценките и коментарите за курс 48 53 - review_id (primary key, bigint) 49 54 - rating (int, задолжително) … … 52 57 - enrollmend_id (foreign_key, bigint) 53 58 54 6. **Course Version** – ентитет кој чува податоци за верзиите на курсеви59 7. **Course Version** – ентитет кој чува податоци за верзиите на курсеви 55 60 - course_version_id (primary key, bigint) 56 61 - versionNumber (int, задолжително) … … 59 64 - course_id (foreign_key, bigint) 60 65 61 7. **Course** – ентитет кој чува податоци за курсевите66 8. **Course** – ентитет кој чува податоци за курсевите 62 67 - course_id (primary key, bigint) 63 68 - color (string, задолжително) … … 67 72 - prica (double, задолжително) 68 73 69 8. **Course Translate** – ентитет кој чува податоци за различните преведувања за одреден курс74 9. **Course Translate** – ентитет кој чува податоци за различните преведувања за одреден курс 70 75 - course_translate_id (primary key, bigint) 71 76 - language (string, задолжително) … … 78 83 - course_id (foreign_key, bigint) 79 84 80 9. **Course Content** – ентитет кој чува податоци за различните модули за одреден курс85 10. **Course Content** – ентитет кој чува податоци за различните модули за одреден курс 81 86 - course_content_id (primary key, bigint) 82 87 - position (int, задолжително) … … 84 89 85 90 86 1 0. **Course Content Translate** – ентитет кој чува податоци за различните преводи на модули за одреден курс91 11. **Course Content Translate** – ентитет кој чува податоци за различните преводи на модули за одреден курс 87 92 - course_content_translate_id (primary key, bigint) 88 93 - language (string, задолжително) … … 91 96 92 97 93 1 1. **Course Lecture** – ентитет кој чува податоци за различните лекции за одреден модул на курс98 12. **Course Lecture** – ентитет кој чува податоци за различните лекции за одреден модул на курс 94 99 - course_lecture_id (primary key, bigint) 95 100 - position(int, задолжително) … … 99 104 100 105 101 1 2. **Course Lecture Translate** – ентитет кој чува податоци за различните преведувања за лекции за одреден модул на курс106 13. **Course Lecture Translate** – ентитет кој чува податоци за различните преведувања за лекции за одреден модул на курс 102 107 - course_lecture_translate_id (primary key, bigint) 103 108 - language (string, задолжително) … … 108 113 - course_lecture_id (foreign_key, bigint) 109 114 110 1 3. **User Course Progress** – ентитет кој чува податоци за прогресот на корисник за лекција на одреден курс115 14. **User Course Progress** – ентитет кој чува податоци за прогресот на корисник за лекција на одреден курс 111 116 - user_course_progress_id (primary key, bigint) 112 117 - isCompleted (boolean, задолжително) … … 115 120 - enrollment_id (foreign_key, bigint) 116 121 117 118 14. **Verification Token** – ентитет кој чува податоци за токените кои се креирани за корисници да го верифицираат нивниот мејл 122 15. **Verification Token** – ентитет кој чува податоци за токените кои се креирани за корисници да го верифицираат нивниот мејл 119 123 - verification_token_uuid (primary key, uuid) 120 124 - expiresAt (timestamp, задолжително) … … 122 126 - user_id (foreign_key, bigint) 123 127 124 1 5. **Tag** – ентитет кој чува податоци за тагови (вештини и интереси) кои се мапираат за корисници и курсеви128 16. **Tag** – ентитет кој чува податоци за тагови (вештини и интереси) кои се мапираат за корисници и курсеви 125 129 - tag_id (primary key, bigint) 126 130 - tagType (enum {skill, topic}, задолжително) 127 131 128 1 6. ** Tag Translate** – ентитет кој чува податоци за различни преведувања за секој од таговите (вештини и интереси)132 17. ** Tag Translate** – ентитет кој чува податоци за различни преведувања за секој од таговите (вештини и интереси) 129 133 - tag_translate_id (primary key, bigint) 130 134 - language (enum {en, mk}, задолжително) … … 132 136 - tag_id (foreign_key, bigint) 133 137 134 1 7. **User Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој корисник138 18. **User Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој корисник 135 139 - tag_id (foreign_key, bigint) 136 140 - user_id (foreign_key, bigint) 137 141 138 1 8. **Course Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој курс142 19. **Course Tag** – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој курс 139 143 - tag_id (foreign_key, bigint) 140 144 - course_id (foreign_key, bigint) 141 145 142 18. **Meeting Email Reminder** – ентитет кој чува податоци за на кои корисници треба да им се испрати потсетник на нивната емаил адреса146 20. **Meeting Email Reminder** – ентитет кој чува податоци за на кои корисници треба да им се испрати потсетник на нивната емаил адреса 143 147 - id (primary key, bigint) 144 148 - meting_at (timestamp, задолжително) … … 148 152 - user_id (foreign_key, bigint) 149 153 154 21. **User Favorite Course** – ентитет кој чува податоци за омилени курсеви на корисници 155 - id (primary key, bigint) 156 - user_id (foreign_key, bigint) 157 - course_id (foreign_key, bigint) 158 150 159 ---- 151 160 === Релации === … … 219 228 Секој User може да има повеќе Meeting_Email_Reminder. 220 229 Секој Meeting_Email_Reminder мора да има барем еден User. 230 231 18. **user_is_favoriting** (USER ↔ USER_FAVORITE_COURSE, 1:N) 232 Секој User може да има повеќе User_Favorite_Course. 233 Секој User_Favorite_Course мора да има барем еден User. 234 235 19. **course_is_favorited** (COURSE ↔ USER_FAVORITE_COURSE, 1:N) 236 Секој Course може да има повеќе User_Favorite_Course. 237 Секој User_Favorite_Course мора да има барем еден Course. 221 238 ----
