wiki:RelationalModel

Version 13 (modified by 231007, 13 days ago) ( diff )

--

Релационен Модел

ЕР Дијаграм за системот

Relational diagram



Детален опис на табелите

1. User → Customer (1:1)

Релацијата помеѓу user и customer е one-to-one.

Секој customer мора да биде user, но не секој user е customer.

Ова е моделирано преку наследување (generalization), каде customer ја проширува основната user структура.

Причина:

  • се избегнува дуплирање на login податоци
  • се задржува централизирана автентикација
  • се одвојува улогата од идентитетот

2. User → Employee (1:1)

Слично како customer, employee е специјализација на user.

Причина:

  • employee има дополнителни атрибути (bio, hire_date)
  • не секој user е employee

Ова овозможува јасна поделба на улоги.

3. User → Manager (1:1)

Manager е исто така специјализација на user.

Причина:

  • менаџерот има административна функција
  • потребно е да се контролира пристапот

Овој модел овозможува scalability.

4. Business → Location (1:N)

Еден business може да има повеќе location записи.

Причина:

  • бизнисите може да имаат повеќе филијали
  • адресата е составен атрибут (улица, град, телефон)

Ова спречува редундантност и овозможува флексибилност.

5. Business → Business Hours (1:N)

Еден business има повеќе записи за работно време.

Причина:

  • работното време варира по ден
  • не може да се чува како еден атрибут

Ова овозможува динамички распоред.

6. Business → Gallery (1:N)

Еден business има повеќе слики.

Причина:

  • секоја слика има свои атрибути (URL, опис)
  • ова е мултивредносен податок

7. Business ↔ Manager (M:N)

Релацијата business_manager е many-to-many.

  • еден manager може да управува повеќе business-и
  • еден business може да има повеќе manager-и

Содржи:

  • assigned_at
  • valid_to

Причина:

  • релацијата има временска компонента
  • се чува историја

8. Business ↔ Employee (M:N)

Релацијата business_employee ги поврзува employee и business.

  • employee може да работи во повеќе business-и
  • business има повеќе employee-и

Содржи:

  • date_start
  • date_finish

Причина:

  • се моделира реален ангажман
  • се овозможува tracking на историја

9. Service → Service Category (1:N)

Секој service припаѓа на една category.

Причина:

  • категоризација на услуги
  • избегнување на дуплирање
  • подобра организација

10. Business ↔ Service (M:N)

Релацијата business_service ги поврзува business и service.

Содржи:

  • price
  • duration_minutes
  • is_active

Причина:

  • цената не е фиксна за service
  • зависи од business
  • релацијата има сопствени атрибути

11. Employee ↔ Service (M:N)

Релацијата employee_service дефинира кои услуги може да ги извршува employee.

Причина:

  • различни вработени имаат различни вештини
  • овозможува флексибилна распределба

12. Business ↔ Specialty (M:N)

Релацијата business_specialty ги поврзува business и specialty.

Причина:

  • еден business може да има повеќе специјалности
  • специјалностите се делат помеѓу повеќе business-и

13. Employee ↔ Business Specialty (M:N)

Релацијата employee_business_specialty дефинира која специјалност ја има employee во конкретен business.

Причина:

  • специјалноста може да зависи од контекстот (business)
  • ова е покомплексна зависност

14. Employee → Working Schedule (1:N)

Еден employee има повеќе записи за работно време.

Причина:

  • распоредот варира по ден
  • потребна е флексибилност

15. Working Schedule → Slot (1:N или деривација)

Slot претставува временски интервали кои произлегуваат од работниот распоред.

Причина:

  • потребно е да се моделира достапност
  • се олеснува закажување

16. Appointment → Customer (N:1)

Еден customer може да има повеќе appointments.

Причина:

  • customer прави повеќе резервации

17. Appointment → Employee (N:1)

Еден employee може да има повеќе appointments.

Причина:

  • employee извршува повеќе услуги

18. Appointment → Business (N:1)

Секој appointment е поврзан со еден business.

Причина:

  • услугата се извршува во конкретен business

19. Appointment → Service (N:1)

Appointment е поврзан со конкретна услуга.

Причина:

  • јасна дефиниција што се извршува

20. Appointment → Slot (N:1)

Appointment е врзан за конкретен временски слот.

Причина:

  • се избегнува overlap
  • се контролира достапност

21. Appointment → Cancellation (1:0..1)

Еден appointment може да има една cancellation или ниедна.

Причина:

  • не сите резервации се откажуваат
  • cancellation има сопствени атрибути

22. Appointment → Reschedule Request (1:N)

Еден appointment може да има повеќе барања за промена.

Причина:

  • може повеќе пати да се побара промена
  • се чува историја

23. Review → Customer (N:1)

Еден customer може да остави повеќе reviews.

Причина:

  • повеќе искуства

24. Review → Employee (N:1)

Review е поврзан со employee.

Причина:

  • оценување на вработен

25. Review → Business (N:1)

Review се однесува и на business.

Причина:

  • оценување на услугата како целина

26. Review → Appointment (1:1 или N:1)

Review е врзан за конкретен appointment.

Причина:

  • гарантира валидност
  • спречува лажни рецензии

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.