wiki:Conceptual_design

Version 5 (modified by 202033, 3 weeks ago) ( diff )

--

ER дијаграм

Податочни барања

Ентитети

  1. User - Ентитет што ги претставува корисниците на системот
  • user_id – primary key(примарен клуч)
  • full_name – varchar (задолжителен атрибут)
  • email – varchar (задолжителен атрибут)
  • phone – varchar (задолжителен атрибут)
  • created_at – datetime (задолжителен атрибут)
  1. Role - Ентитет што ги претставува улогите што корисниците можат да ги имаат во системот
  • role_id – primary key(примарен клуч)
  • name – varchar (задолжителен атрибут)
  1. Review - Ентитет што ги претставува рецензиите дадени од корисниците
  • review_id – primary key(примарен клуч)
  1. Service - Ентитет што ги претставува услугите што ги нуди салонот
  • service_id – primary key(примарен клуч)
  • name – varchar (задолжителен атрибут)
  • price – decimal (задолжителен атрибут)
  • duration_minutes – int (задолжителен атрибут)
  1. Category - Ентитет што ги претставува категориите на услуги
  • category_id – primary key(примарен клуч)
  • name – varchar (задолжителен атрибут)
  1. Package - Ентитет што ги претставува пакетите на услуги што ги нуди салонот
  • package_id – primary key(примарен клуч)
  • name – varchar (задолжителен атрибут)
  • max_usage – int (задолжителен атрибут)
  1. Appointment - Ентитет што ги претставува закажаните термини на корисниците
  • appointment_id – primary key(примарен клуч)
  • appointment_time – datetime (задолжителен атрибут)
  • end_time – datetime (задолжителен атрибут)
  • notes – text
  • total_price – decimal (задолжителен атрибут)
  • type – enum('pre-booked','walk-in') (задолжителен атрибут)
  1. Status - Ентитет што ги претставува можните статуси на термините
  • status_id – primary key(примарен клуч)
  • name – varchar (задолжителен атрибут)
  1. LoyaltyCard - Ентитет што ги претставува картичките за лојалност на корисниците
  • card_id – primary key(примарен клуч)
  • points – int (задолжителен атрибут)
  1. Payment - Ентитет што ги претставува плаќањата направени од корисниците
  • payment_id – primary key(примарен клуч)
  • amount – decimal (задолжителен атрибут)
  • method – varchar (задолжителен атрибут)
  • timestamp – datetime (задолжителен атрибут)
  • status – varchar (задолжителен атрибут)

Релации

1. UserRole – M:N релација помеѓу User и Role Еден корисник може да има повеќе улоги, и една улога може да биде доделена на повеќе корисници. Оваа релација овозможува флексибилен систем за управување со дозволи.

2. ReviewPayment – 1:1 релација помеѓу Review и Payment Секој Review е поврзан со точно едно Payment. На овој начин, само корисници кои платиле може да остават рецензија.

3. ServiceCategory – N:1 релација помеѓу Service и Category Повеќе услуги можат да припаѓаат на иста категорија, но секоја услуга припаѓа на точно една категорија. Оваа релација ги организира услугите во категории.

4. PackageService – M:N релација помеѓу Package и Service Еден пакет може да содржи повеќе услуги, и една услуга може да биде дел од повеќе пакети. Оваа релација овозможува креирање на промотивни пакети со попуст. Дополнителен атрибут: discounted_price.

5. UserAppointment – 1:N релација помеѓу User и Appointment Еден корисник може да има повеќе термини, но еден термин припаѓа на точно еден корисник. Оваа релација ги следи закажаните термини на секој корисник.

6. AppointmentService – M:N релација помеѓу Appointment и Service Еден термин може да вклучува повеќе услуги, и една услуга може да биде дел од повеќе термини. Оваа релација овозможува флексибилно закажување на комбинирани услуги.

7. AppointmentStatus – N:1 релација помеѓу Appointment и Status Повеќе термини можат да имаат ист статус, но секој термин има точно еден статус. Оваа релација го следи статусот на термините (закажан, завршен, откажан, итн.).

8. UserLoyaltyCard – 1:1 релација помеѓу User и LoyaltyCard Еден корисник има точно една картичка за лојалност, и една картичка за лојалност припаѓа на точно еден корисник. Оваа релација овозможува систем за бодови и награди за лојални корисници.

9. AppointmentPayment – N:1 релација помеѓу Payment и Appointment Еден термин може да има повеќе плаќања поврзани со него (пр. аконтација и конечно плаќање), но секое плаќање се однесува на точно еден термин. Оваа релација ги следи финансиските трансакции за секој термин.

Attachments (4)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.