| | 8 | 1. ** User** - Ентитет што ги претставува корисниците на системот |
| | 9 | |
| | 10 | * user_id – primary key(примарен клуч) |
| | 11 | * full_name – varchar (задолжителен атрибут) |
| | 12 | * email – varchar (задолжителен атрибут) |
| | 13 | * phone – varchar (задолжителен атрибут) |
| | 14 | * created_at – datetime (задолжителен атрибут) |
| | 15 | |
| | 16 | 2. **Role** - Ентитет што ги претставува улогите што корисниците можат да ги имаат во системот |
| | 17 | |
| | 18 | * role_id – primary key(примарен клуч) |
| | 19 | * name – varchar (задолжителен атрибут) |
| | 20 | |
| | 21 | 3. **Review** - Ентитет што ги претставува рецензиите дадени од корисниците |
| | 22 | |
| | 23 | * review_id – primary key(примарен клуч) |
| | 24 | |
| | 25 | |
| | 26 | 4. **Service** - Ентитет што ги претставува услугите што ги нуди салонот |
| | 27 | |
| | 28 | * service_id – primary key(примарен клуч) |
| | 29 | * name – varchar (задолжителен атрибут) |
| | 30 | * price – decimal (задолжителен атрибут) |
| | 31 | * duration_minutes – int (задолжителен атрибут) |
| | 32 | |
| | 33 | |
| | 34 | 5. **Category** - Ентитет што ги претставува категориите на услуги |
| | 35 | |
| | 36 | * category_id – primary key(примарен клуч) |
| | 37 | * name – varchar (задолжителен атрибут) |
| | 38 | |
| | 39 | 6. **Package** - Ентитет што ги претставува пакетите на услуги што ги нуди салонот |
| | 40 | |
| | 41 | * package_id – primary key(примарен клуч) |
| | 42 | * name – varchar (задолжителен атрибут) |
| | 43 | * max_usage – int (задолжителен атрибут) |
| | 44 | |
| | 45 | |
| | 46 | 7. **Appointment** - Ентитет што ги претставува закажаните термини на корисниците |
| | 47 | |
| | 48 | * appointment_id – primary key(примарен клуч) |
| | 49 | * appointment_time – datetime (задолжителен атрибут) |
| | 50 | * end_time – datetime (задолжителен атрибут) |
| | 51 | * notes – text |
| | 52 | * total_price – decimal (задолжителен атрибут) |
| | 53 | |
| | 54 | 8. **Status** - Ентитет што ги претставува можните статуси на термините |
| | 55 | |
| | 56 | * status_id – primary key(примарен клуч) |
| | 57 | * name – varchar (задолжителен атрибут) |
| | 58 | |
| | 59 | 9. **LoyaltyCard** - Ентитет што ги претставува картичките за лојалност на корисниците |
| | 60 | |
| | 61 | * card_id – primary key(примарен клуч) |
| | 62 | * points – int (задолжителен атрибут) |
| | 63 | |
| | 64 | 10. **Payment** - Ентитет што ги претставува плаќањата направени од корисниците |
| | 65 | |
| | 66 | * payment_id – primary key(примарен клуч) |
| | 67 | * amount – decimal (задолжителен атрибут) |
| | 68 | * method – varchar (задолжителен атрибут) |
| | 69 | * timestamp – datetime (задолжителен атрибут) |
| | 70 | * status – varchar (задолжителен атрибут) |
| | 71 | |
| | 72 | |
| | 73 | |
| | 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 | Еден термин може да има повеќе плаќања поврзани со него (пр. аконтација и конечно плаќање), но секое плаќање се однесува на точно еден термин. Оваа релација ги следи финансиските трансакции за секој термин. |