Changes between Initial Version and Version 1 of ERModel


Ignore:
Timestamp:
02/11/25 16:26:22 (11 days ago)
Author:
223075
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ERModel

    v1 v1  
     1= ЕР Дијаграм =
     2
     3[[Image(BlissCoreDB_Scheme_2, 650px)]]
     4
     5----
     6== Податочни побарувања ==
     7
     8=== Ентитети ===
     9
     101. **USER** – ентитет кој чува податоци за крајните корисници (клиенти).
     11   - user_id (primary key, bigint)
     12   - username (string, задолжително)
     13   - email (string, задолжително)
     14   - password_hash (string, задолжително)
     15   - (други полиња по потреба, пример first_name, last_name)
     16
     172. **INSTRUCTOR** – ентитет кој чува податоци за инструктори.
     18   - instructor_id (primary key, bigint)
     19   - first_name (string, задолжително)
     20   - last_name (string, задолжително)
     21   - biography (text, опционално)
     22
     233. **TRAINING** – ентитет кој чува податоци за различни типови јога тренинзи (Vinyasa, Hatha итн.).
     24   - training_id (primary key, bigint)
     25   - training_name (string, задолжително)
     26   - description (text, опционално)
     27   - duration (int, опционално)
     28   - intensity_level (string, опционално)
     29
     304. **CLASS** – ентитет кој чува податоци за закажани часови во распоред.
     31   - class_id (primary key, bigint)
     32   - date (date, задолжително)
     33   - start_time (time, задолжително)
     34   - end_time (time, задолжително)
     35   - location (string, задолжително)
     36   - capacity (int, опционално)
     37   - seats_available (int, опционално)
     38
     395. **EVENT** – ентитет кој чува податоци за специјални настани (workshops, retreats).
     40   - event_id (primary key, bigint)
     41   - event_name (string, задолжително)
     42   - description (text, опционално)
     43   - date (date, задолжително)
     44   - time (time, задолжително)
     45   - location (string, задолжително)
     46
     476. **PACKAGE** – ентитет кој чува податоци за пакети (e.g., “5-Class Pass”).
     48   - package_id (primary key, bigint)
     49   - package_name (string, задолжително)
     50   - price (decimal, задолжително)
     51   - num_classes (int, задолжително)
     52
     537. **MERCH_ITEMS** – ентитет кој чува податоци за јога опрема (мерч).
     54   - merch_id (primary key, bigint)
     55   - item_name (string, задолжително)
     56   - description (text, опционално)
     57   - price (decimal, задолжително)
     58   - quantity_in_stock (int, опционално)
     59
     60----
     61=== Релации ===
     62
     631. **books** – релација помеѓу USER и CLASS (M:N). 
     64   Означува дека еден корисник може да букира повеќе часови, а еден час може да биде букиран од повеќе корисници.
     65
     662. **teaches** – релација помеѓу INSTRUCTOR и CLASS (1:N). 
     67   Означува кој инструктор го предава одреден час. Секој час мора да има точно еден инструктор, а еден инструктор може да предава повеќе часови.
     68
     693. **is_scheduled_for** – релација помеѓу CLASS и TRAINING (M:N). 
     70   Еден час може да содржи повеќе (најмалку еден) тренинзи (комбинирана сесија), а еден тренинг може да се појави во повеќе часови или воопшто да не биде закажан.
     71
     724. **registers** – релација помеѓу USER и EVENT (M:N). 
     73   Корисниците се регистрираат за специјални настани.
     74
     755. **buys** – релација помеѓу USER и PACKAGE (M:N). 
     76   Означува купување пакети.
     77
     786. **purchases** – релација помеѓу USER и MERCH_ITEMS (M:N). 
     79   Означува дека корисниците можат да купуваат јога опрема.
     80
     817. **is_for** – релација помеѓу PACKAGE и CLASS (M:N). 
     82   Означува кои часови ги содржи еден пакет. Еден пакет мора да има барем еден час, а еден час може да биде дел од ниту еден или повеќе пакети.
     83
     84----
     85== Историјат ==
     86
     87=== Верзија 2 ===
     88[[Image(BlissCoreDB_Scheme_2.png, 500px)]]
     89 
     90'''Измени од претходната верзија:''' 
     91- Релацијата ''is_for'' сега е помеѓу PACKAGE и CLASS (наместо PACKAGE и TRAINING), со што пакетите содржат часови. 
     92- Релацијата ''is_scheduled_for'' е прилагодена да биде M:N, овозможува еден CLASS да содржи повеќе (најмалку еден) TRAINING, а еден TRAINING да се појави во повеќе часови (или воопшто да не биде закажан).
     93
     94=== Верзија 1 ===
     95[[Image(BlissCoreDB_Scheme_1.png, 500px)]]
     96
     97''Опис: Првична верзија со помошни ентитети за bookings, registrations итн.''