| Version 9 (modified by , 2 days ago) ( diff ) |
|---|
ЕР Дијаграм
Податочни побарувања
Ентитети
- User – ентитет кој чува податоци за крајните корисници (клиенти)
- user_id (primary key, bigint)
- name (string, задолжително)
- email (string, задолжително)
- password_hash (string, задолжително)
- loginProvider (enum {local, google}, задолжително)
- isVerified(boolean, задолжително - за мејл верификација)
- isProfileComplete (boolean, задолжително - за персонализирање на профил)
- hasUsedFreeConsultation (boolean, задолжително)
- workPosition (string, задолжително)
- companySize (enum {freelance, micro, small, medium, mid_market, enterprise, other}, задолжително)
- points (int, задолжително)
- favoriteCourseIds (int[], задолжително)
- Expert – ентитет кој чува податоци за експертот
- expert_id (primary key, bigint)
- email (string, задолжително)
- password_hash (string, задолжително)
- name (string, задолжително)
- Enrollment – ентитет кој чува податоци за превземање на курс од страна на клиент
- enrollment_id (primary key, bigint)
- enrollmentStatus (enum {pending, active, completed}, задолжително)
- activationDate (date, задолжително)
- completionDate (date, задолжително)
- purchaseDate (date, задолжително)
- user_id (foreign key, bigint)
- course_version_id (foreign key, bigint)
- Payment – ентитет кој чува податоци за наплатата на корисниците за курс
- payment_id (primary key, bigint)
- ammount(double, задолжително)
- paymentDate (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, задолжително)
- reviewDate (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}, задолжително)
- durationMinutes (int, задолжително)
- imageUrl (string, задолжително)
- prica (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, задолжително)
- durationMinutes (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)
- Tag – ентитет кој чува податоци за тагови (вештини и интереси) кои се мапираат за корисници и курсеви
- tag_id (primary key, bigint)
- tagType (enum {skill, topic}, задолжително)
- Tag Translate – ентитет кој чува податоци за различни преведувања за секој од таговите (вештини и интереси)
- tag_translate_id (primary key, bigint)
- language (enum {en, mk}, задолжително)
- value (string, задолжително)
- tag_id (foreign_key, bigint)
- User Tag – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој корисник
- tag_id (foreign_key, bigint)
- user_id (foreign_key, bigint)
- Course Tag – слаб ентитет кој чува податоци за таговите (вештини и интереси) за секој курс
- tag_id (foreign_key, bigint)
- course_id (foreign_key, bigint)
Релации
- has (USER ↔ VERIFICATION_TOKEN, 1:1) Секој User има точно еден Verification_Token. Секој Verification_Token припаѓа точно на еден User.
- enrolls (USER ↔ ENROLLMENT, 1:N) Еден User може да има повеќе Enrollments. Секое Enrollment припаѓа на точно еден User.
- has (PAYMENT ↔ ENROLLMENT, 1:1) Секоја инстанца на Payment има точно една инстанца на Enrollment. Секоја инстанца на Enrollment може да припаѓа на точно една инстанца на Payment.
- has (REVIEW ↔ ENROLLMENT, 1:1) Секоја инстанца на Review има точно една инстанца на Enrollment. Секоја инстанца на Enrollment може да припаѓа на точно една инстанца на Review.
- has (ENROLLMENT ↔ COURSE_VERSION, N:1) Секоја инстанца на Enrollment има точно една инстанца на Course_Version. Една инстанца на Course_Version може да биде дел од повеќе инстанци на Enrollment.
- has (COURSE ↔ COURSE_VERSION, 1:N) Една инстанца на Course може да има повеќе инстанци на Course_Version. Секоја инстанца на Course_Version припаѓа на точно една инстанца на Course.
- isTranslatedInto (COURSE_VERSION ↔ COURSE, N:1) Секоја инстанца на Course_Translate припаѓа на точно една инстанца на Course. Една инстанца на Course може да има повеќе инстанци на Course_Translate.
- has (COURSE_VERSION ↔ COURSE_CONTENT, 1:N) Една инстанца на CourseVersion може да има повеќе инстанци на Course_Content. Секоја инстанца на Course_Content припаѓа на точно една инстанца на CourseVersion.
- isTranslatedInto (COURSE_CONTENT ↔ COURSE_CONTENT_TRANSLATE, 1:N) Една инстанца на Course_Content може да има повеќе инстанци на Course_Content_Translate. Секоја инстанца на Course_Content_Translate припаѓа на точно една инстанца на Course_Content.
- has (COURSE_CONTENT ↔ COURSE_LECTURE, 1:N) Една инстанца на Course_Content може да има повеќе инстанци на Course_Lecture. Секоја инстанца на Course_Lecture припаѓа на точно една инстанца на Course_Content.
- isTranslatedInto (COURSE_LECTURE ↔ COURSE_LECTURE_TRANSLATE, 1:N) Една инстанца на Course_Lecture може да има повеќе инстанци на Course_Lecture_Translate. Секоја инстанца на Course_Lecture_Translate припаѓа на точно една инстанца на Course_Lecture.
- has progress (CourseLecture 1 ──< UserCourseProgress >── 1 Enrollment) Секоја инстанца на User_Course_Progress се однесува на точно една инстанца на Course_Lecture и точно една инстанца на Enrollment. Една инстанца на Course_Lecture може да биде поврзана со повеќе инстанци на User_Course_Progress. Една инстанца на Enrollment може да биде поврзана со повеќе инстанци на User_Course_Progress.
- has (USER ↔ TAG, N:N) Секој User може да има повеќе TAG-ови. Секој TAG може да има повеќе User-и.
- has (COURSE ↔ TAG, N:N) Секој User може да има повеќе TAG-ови. Секој TAG може да има повеќе User-и.
- has (TAG ↔ TAG_TRANSLATION, 1:N) Секој TAG може да има повеќе Tag_Translation. Секој Tag_Translation припаѓа на точно на еден TAG.
Attachments (1)
- shifter_er_diagram.drawio.png (100.9 KB ) - added by 2 days ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.
