Changes between Version 3 and Version 4 of erd


Ignore:
Timestamp:
01/24/26 13:42:09 (6 days ago)
Author:
231175
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • erd

    v3 v4  
    10101. **User** – ентитет кој чува податоци за крајните корисници (клиенти)
    1111   - user_id (primary key, bigint)
     12   - name (string, задолжително)
     13   - email (string, задолжително)
     14   - password_hash (string, задолжително)
     15   - loginProvider (enum {local, google}, задолжително)
     16   - isVerified(boolean, задолжително - за мејл верификација)
     17   - isProfileComplete (boolean, задолжително - за персонализирање на профил)
     18   - hasUsedFreeConsultation (boolean, задолжително)
    1219   - workPosition (string, задолжително)
    1320   - companySize (enum {freelance, micro, small, medium, mid_market, enterprise, other}, задолжително)
    1421   - points (int, задолжително)
    15    - favoriteCourses (int[], задолжително)
    16    - loginProvider (enum {local, google}, задолжително)
    17    - hasUsedFreeConsultation (boolean, задолжително)
    18    - isProfileComplete (boolean, задолжително)
    19    - isEmailVerified(boolean, задолжително)
    20    - email (string, задолжително)
    21    - password_hash (string, задолжително)
    22    - name (string, задолжително)
     22   - favoriteCourseIds (int[], задолжително)
    2323
    24242. **Expert** – ентитет кој чува податоци за експертот
     
    30303. **Enrollment** – ентитет кој чува податоци за превземање на курс од страна на клиент
    3131   - enrollment_id (primary key, bigint)
    32    - activatedAt (date, задолжително)
    33    - completedAt (date, задолжително)
    34    - dateEnrolled (date, задолжително)
     32   - enrollmentStatus (enum {pending, active, completed}, задолжително)
     33   - activationDate (date, задолжително)
     34   - completionDate (date, задолжително)
     35   - purchaseDate (date, задолжително)
    3536   - user_id (foreign key, bigint)
     37   - course_version_id (foreign key, bigint)
    3638
    37394. **Payment** – ентитет кој чува податоци за наплатата на корисниците за курс
    3840   - payment_id (primary key, bigint)
    3941   - ammount(double, задолжително)
    40    - date (date, задолжително)
     42   - paymentDate (date, задолжително)
    4143   - paymentMethod (enum {card, paypal, casys}, задолжително)
    4244   - paymentStatus (enum {pending, completed, failed}, задолжително)
     
    4749   - rating (int, задолжително)
    4850   - comment (string, задолжително)
    49    - date (date, задолжително)
     51   - reviewDate (date, задолжително)
    5052   - enrollmend_id (foreign_key, bigint)
    5153
     
    6163   - color (string, задолжително)
    6264   - difficulty (enum {beginner, intermediate, advanced, expert}, задолжително)
    63    - durationMin (int, задолжително)
     65   - durationMinutes (int, задолжително)
    6466   - imageUrl (string, задолжително)
    65    - durationMin (double, задолжително)
     67   - prica (double, задолжително)
    6668
    67698. **Course Translate** – ентитет кој чува податоци за различните преведувања за одреден курс
     
    9294   - course_lecture_id (primary key, bigint)
    9395   - position(int, задолжително)
    94    - durationMin (int, задолжително)
     96   - durationMinutes (int, задолжително)
    9597   - contentType (enum {text, file, video, quiz}, задолжително)
    9698   - course_content_id (foreign_key, bigint)
     
    131133   Секое Enrollment припаѓа на точно еден User.
    132134
    133 3. **has** (ENROLLMENT ↔ PAYMENT, 1:1) 
    134    Секоја инстанца на Enrollment има точно една инстанца на Payment.
    135    Секоја инстанца на Payment припаѓа точно на една инстанца на Enrollment.
     1353. **has** (PAYMENT ↔ ENROLLMENT, 1:1) 
     136   Секоја инстанца на Payment има точно една инстанца на Enrollment.
     137   Секоја инстанца на Enrollment може да припаѓа на точно една инстанца на Payment.
    136138
    137 4. **has** (ENROLLMENT ↔ REVIEW, 1:1) 
    138    Секоја инстанца на Enrollment има точно една инстанца на Review.
    139    Секоја инстанца на Review припаѓа точно на една инстанца на Enrollment.
     1394. **has** (REVIEW ↔ ENROLLMENT, 1:1) 
     140   Секоја инстанца на Review има точно една инстанца на Enrollment.
     141   Секоја инстанца на Enrollment може да припаѓа на точно една инстанца на Review.
    140142
    141 5. **has** (ENROLLMENT ↔ COURSE_VERSION, N:1) 
    142    Една инстанца на Enrollment припаѓа на точно една инстанца на CourseVersion.
     1435. **has** (ENROLLMENT ↔ COURSE_VERSION, N:1)
     144   Секоја инстанца на Enrollment има точно една инстанца на CourseVersion.
    143145   Една инстанца на CourseVersion може да биде дел од повеќе инстанци на Enrollment.
    144146
    145 6. **has** (COURSE_VERSION ↔ COURSE, 1:N) 
     1476. **has** (COURSE ↔ COURSE_VERSION, 1:N) 
    146148   Една инстанца на Course може да има повеќе инстанци на CourseVersion.
    147149   Секоја инстанца на CourseVersion припаѓа на точно една инстанца на Course.
    148150
    149 7. **isTranslatedInto** (COURSE ↔ COURSE_TRANSLATE, N:1) 
     1517. **isTranslatedInto** (COURSE_VERSION ↔ COURSE, N:1) 
    150152   Секоја инстанца на CourseTranslate припаѓа на точно една инстанца на Course.
    151153   Една инстанца на Course може да има повеќе инстанци на CourseTranslate.