Changes between Version 1 and Version 2 of Conceptual_design


Ignore:
Timestamp:
02/04/26 14:27:31 (3 weeks ago)
Author:
202033
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Conceptual_design

    v1 v2  
    11== ER дијаграм
    2 
     2[[Image(VenusBeauty_ER.png)]]
    33
    44== Податочни барања
     
    66=== Ентитети
    77
     81. ** User** - Ентитет што ги претставува корисниците на системот
     9
     10* user_id – primary key(примарен клуч)
     11* full_name – varchar (задолжителен атрибут)
     12* email – varchar (задолжителен атрибут)
     13* phone – varchar (задолжителен атрибут)
     14* created_at – datetime (задолжителен атрибут)
     15
     162. **Role** - Ентитет што ги претставува улогите што корисниците можат да ги имаат во системот
     17
     18* role_id – primary key(примарен клуч)
     19* name – varchar (задолжителен атрибут)
     20
     213. **Review** - Ентитет што ги претставува рецензиите дадени од корисниците
     22
     23* review_id – primary key(примарен клуч)
     24
     25
     264. **Service** - Ентитет што ги претставува услугите што ги нуди салонот
     27
     28* service_id – primary key(примарен клуч)
     29* name – varchar (задолжителен атрибут)
     30* price – decimal (задолжителен атрибут)
     31* duration_minutes – int (задолжителен атрибут)
     32
     33
     345. **Category** - Ентитет што ги претставува категориите на услуги
     35
     36* category_id – primary key(примарен клуч)
     37* name – varchar (задолжителен атрибут)
     38
     396. **Package** - Ентитет што ги претставува пакетите на услуги што ги нуди салонот
     40
     41* package_id – primary key(примарен клуч)
     42* name – varchar (задолжителен атрибут)
     43* max_usage – int (задолжителен атрибут)
     44
     45
     467. **Appointment** - Ентитет што ги претставува закажаните термини на корисниците
     47
     48* appointment_id – primary key(примарен клуч)
     49* appointment_time – datetime (задолжителен атрибут)
     50* end_time – datetime (задолжителен атрибут)
     51* notes – text
     52* total_price – decimal (задолжителен атрибут)
     53
     548. **Status** - Ентитет што ги претставува можните статуси на термините
     55
     56* status_id – primary key(примарен клуч)
     57* name – varchar (задолжителен атрибут)
     58
     599. **LoyaltyCard** - Ентитет што ги претставува картичките за лојалност на корисниците
     60
     61* card_id – primary key(примарен клуч)
     62* points – int (задолжителен атрибут)
     63
     6410. **Payment** - Ентитет што ги претставува плаќањата направени од корисниците
     65
     66* payment_id – primary key(примарен клуч)
     67* amount – decimal (задолжителен атрибут)
     68* method – varchar (задолжителен атрибут)
     69* timestamp – datetime (задолжителен атрибут)
     70* status – varchar (задолжителен атрибут)
     71
     72
     73
    874=== Релации
    975
     76**1. UserRole – M:N релација помеѓу User и Role**
     77Еден корисник може да има повеќе улоги, и една улога може да биде доделена на повеќе корисници. Оваа релација овозможува флексибилен систем за управување со дозволи.
    1078
     79**2. UserReview – 1:N релација помеѓу User и Review
     80**
     81Еден корисник може да напише повеќе рецензии, но една рецензија припаѓа на точно еден корисник. Оваа релација го следи авторството на рецензиите.
     82
     83**3. ServiceReview – 1:N релација помеѓу Service и Review
     84**
     85Една услуга може да добие повеќе рецензии, но една рецензија се однесува на точно една услуга. Оваа релација овозможува корисниците да оценуваат специфични услуги.
     86
     87**4. ServiceCategory – N:1 релација помеѓу Service и Category
     88**
     89Повеќе услуги можат да припаѓаат на иста категорија, но секоја услуга припаѓа на точно една категорија. Оваа релација ги организира услугите во категории.
     90
     91**5. PackageService – M:N релација помеѓу Package и Service
     92**
     93Еден пакет може да содржи повеќе услуги, и една услуга може да биде дел од повеќе пакети. Оваа релација овозможува креирање на промотивни пакети со попуст. Дополнителен атрибут: discounted_price.
     94
     95**6. UserAppointment – 1:N релација помеѓу User и Appointment
     96**
     97Еден корисник може да има повеќе термини, но еден термин припаѓа на точно еден корисник. Оваа релација ги следи закажаните термини на секој корисник.
     98
     99**7. AppointmentService – M:N релација помеѓу Appointment и Service
     100**
     101Еден термин може да вклучува повеќе услуги, и една услуга може да биде дел од повеќе термини. Оваа релација овозможува флексибилно закажување на комбинирани услуги.
     102
     103**8. AppointmentStatus – N:1 релација помеѓу Appointment и Status
     104**
     105Повеќе термини можат да имаат ист статус, но секој термин има точно еден статус. Оваа релација го следи статусот на термините (закажан, завршен, откажан, итн.).
     106
     107**9. UserLoyaltyCard – 1:1 релација помеѓу User и LoyaltyCard
     108**
     109Еден корисник има точно една картичка за лојалност, и една картичка за лојалност припаѓа на точно еден корисник. Оваа релација овозможува систем за бодови и награди за лојални корисници.
     110
     111**10. AppointmentPayment – N:1 релација помеѓу Payment и Appointment
     112**
     113Еден термин може да има повеќе плаќања поврзани со него (пр. аконтација и конечно плаќање), но секое плаќање се однесува на точно еден термин. Оваа релација ги следи финансиските трансакции за секој термин.