ЕР Дијаграм
Податочни побарувања
Ентитети
- User – ентитет кој чува податоци за крајните корисници (клиенти)
- user_id (primary key, bigint)
- workPosition (string, задолжително)
- companySize (enum {freelance, micro, small, medium, mid_market, enterprise, other}, задолжително)
- points (int, задолжително)
- favoriteCourses (int[], задолжително)
- loginProvider (enum {local, google}, задолжително)
- hasUsedFreeConsultation (boolean, задолжително)
- isProfileComplete (boolean, задолжително)
- isEmailVerified(boolean, задолжително)
- email (string, задолжително)
- password_hash (string, задолжително)
- name (string, задолжително)
- Expert – ентитет кој чува податоци за експертот
- expert_id (primary key, bigint)
- email (string, задолжително)
- password_hash (string, задолжително)
- name (string, задолжително)
- Enrollment – ентитет кој чува податоци за превземање на курс од страна на клиент
- enrollment_id (primary key, bigint)
- activatedAt (date, задолжително)
- completedAt (date, задолжително)
- dateEnrolled (date, задолжително)
- user_id (foreign key, bigint)
- Payment – ентитет кој чува податоци за наплатата на корисниците за курс
- payment_id (primary key, bigint)
- ammount(double, задолжително)
- date (date, задолжително)
- paymentMethod (enum {card, paypal, casys}, задолжително)
- paymentStatus (enum {pending, completed, failed}, задолжително)
- enrollmend_id (foreign_key, bigint)
- Review – ентитет кој чува податоци за оценките и коментарите за курс
- review_id (primary key, bigint)
- rating (int, задолжително)
- comment (string, задолжително)
- date (date, задолжително)
- enrollmend_id (foreign_key, bigint)
- Course Version – ентитет кој чува податоци за верзиите на курсеви
- course_version_id (primary key, bigint)
- versionNumber (int, задолжително)
- createdAt (date, задолжително)
- isActive (boolean, задолжително)
- course_id (foreign_key, bigint)
- Course – ентитет кој чува податоци за курсевите
- course_id (primary key, bigint)
- color (string, задолжително)
- difficulty (enum {beginner, intermediate, advanced, expert}, задолжително)
- durationMin (int, задолжително)
- imageUrl (string, задолжително)
- durationMin (double, задолжително)
- Course Translate – ентитет кој чува податоци за различните преведувања за одреден курс
- course_translate_id (primary key, bigint)
- language (string, задолжително)
- descriptionShort(string, задолжително)
- description (string, задолжително)
- descriptionLong (string, задолжително)
- titleShort (string, задолжително)
- title (string, задолжително)
- whatWillBeLearned (string[], задолжително)
- course_id (foreign_key, bigint)
- Course Content – ентитет кој чува податоци за различните модули за одреден курс
- course_content_id (primary key, bigint)
- position (int, задолжително)
- course_version_id (foreign_key, bigint)
- Course Content Translate – ентитет кој чува податоци за различните преводи на модули за одреден курс
- course_content_translate_id (primary key, bigint)
- language (string, задолжително)
- title(string, задолжително)
- course_content_id (foreign_key, bigint)
- Course Lecture – ентитет кој чува податоци за различните лекции за одреден модул на курс
- course_lecture_id (primary key, bigint)
- position(int, задолжително)
- durationMin (int, задолжително)
- contentType (enum {text, file, video, quiz}, задолжително)
- course_content_id (foreign_key, bigint)
- Course Lecture Translate – ентитет кој чува податоци за различните преведувања за лекции за одреден модул на курс
- course_lecture_translate_id (primary key, bigint)
- language (string, задолжително)
- contentFileName (string, задолжително)
- contentText (string, задолжително)
- description (string, задолжително)
- title (string, задолжително)
- course_lecture_id (foreign_key, bigint)
- User Course Progress – ентитет кој чува податоци за прогресот на корисник за лекција на одреден курс
- user_course_progress_id (primary key, bigint)
- isCompleted (boolean, задолжително)
- completedAt (date, задолжително)
- course_lecture_id (foreign_key, bigint)
- enrollment_id (foreign_key, bigint)
- Verification Token – ентитет кој чува податоци за токените кои се креирани за корисници да го верифицираат нивниот мејл
- verification_token_uuid (primary key, uuid)
- expiresAt (date, задолжително)
- createdAt (date, задолжително)
- user_id (foreign_key, bigint)
Релации
- has (USER ↔ VERIFICATION_TOKEN, 1:1) Секој User има точно еден VerificationToken. Секој VerificationToken припаѓа точно на еден User.
- enrolls (USER ↔ ENROLLMENT, 1:N) Еден User може да има повеќе Enrollments. Секое Enrollment припаѓа на точно еден User.
- has (ENROLLMENT ↔ PAYMENT, 1:1) Секоја инстанца на Enrollment има точно една инстанца на Payment. Секоја инстанца на Payment припаѓа точно на една инстанца на Enrollment.
- has (ENROLLMENT ↔ REVIEW, 1:1) Секоја инстанца на Enrollment има точно една инстанца на Review. Секоја инстанца на Review припаѓа точно на една инстанца на Enrollment.
- has (ENROLLMENT ↔ COURSE_VERSION, N:1) Една инстанца на Enrollment припаѓа на точно една инстанца на CourseVersion. Една инстанца на CourseVersion може да биде дел од повеќе инстанци на Enrollment.
- has (COURSE_VERSION ↔ COURSE, 1:N) Една инстанца на Course може да има повеќе инстанци на CourseVersion. Секоја инстанца на CourseVersion припаѓа на точно една инстанца на Course.
- isTranslatedInto (COURSE ↔ COURSE_TRANSLATE, N:1) Секоја инстанца на CourseTranslate припаѓа на точно една инстанца на Course. Една инстанца на Course може да има повеќе инстанци на CourseTranslate.
- has (COURSE_VERSION ↔ COURSE_CONTENT, 1:N) Една инстанца на CourseVersion може да има повеќе инстанци на CourseContent. Секоја инстанца на CourseContent припаѓа на точно една инстанца на CourseVersion.
- isTranslatedInto (COURSE_CONTENT ↔ COURSE_CONTENT_TRANSLATE, 1:N) Една инстанца на CourseContent може да има повеќе инстанци на CourseContentTranslate. Секоја инстанца на CourseContentTranslate припаѓа на точно една инстанца на CourseContent.
- has (COURSE_CONTENT ↔ COURSE_LECTURE, 1:N) Една инстанца на CourseContent може да има повеќе инстанци на CourseLecture. Секоја инстанца на CourseLecture припаѓа на точно една инстанца на CourseContent.
- isTranslatedInto (COURSE_LECTURE ↔ COURSE_LECTURE_TRANSLATE, 1:N) Една инстанца на CourseLecture може да има повеќе инстанци на CourseLectureTranslate. Секоја инстанца на CourseLectureTranslate припаѓа на точно една инстанца на CourseLecture.
- has progress (CourseLecture 1 ──< UserCourseProgress >── 1 Enrollment) Секоја инстанца на UserCourseProgress се однесува на точно една инстанца на CourseLecture и точно една инстанца на Enrollment. Една инстанца на CourseLecture може да биде поврзана со повеќе инстанци на UserCourseProgress. Една инстанца на Enrollment може да биде поврзана со повеќе инстанци на UserCourseProgress.
Last modified
28 hours ago
Last modified on 11/06/25 19:11:43
Attachments (1)
- shifter_er_diagram.png (225.2 KB ) - added by 29 hours ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.

