wiki:ERModel

Version 65 (modified by 184006, 4 weeks ago) ( diff )

--

ER дијаграм (верзија 6)

Ентитети

Users - генерален ентитет кој што дефинира корисници на апликацијата.

  • ID - нумерички тип (примарен клуч)
  • firstname - текстуален тип (задолжителен атрибут)
  • lastName - текстуален тип (задолжителен атрибут)
  • phoneNumber - текстуален тип (задолжителен атрибут)
  • password - текстуален тип (задолжителен атрибут)
  • еmail - текстуален тип (задолжителен атрибут)

Roles - ентитет кој чува податоци за тип на корисник кој што може да биде админ, менаџер, вработен или стандарден корисник.

  • ID - нумерички тип (примарен клуч)
  • type - текстуален тип

Cities - ентитет во кој што ќе се чуваат сите градови во кои што има ветeринарен центар.

  • ID - нумерички тип (примарен клуч)
  • name - текстуален тип (задолжителен атрибут)

Vet_Centers - ентитет во кој ќе се чуваат информации за ветеринарните центри.

  • ID - нумерички тип (примарен клуч)
  • name - текстуален тип (задолжителен атрибут)
  • address - текстуален тип (задолжителен атрибут)
  • description - текстуален тип
  • longitude - varchar тип
  • latitute - varchar тип
  • phoneNumber - текстуален тип (задолжителен атрибут)
  • workingHours - нумерички тип

Pets - ентитет во кој се чуваат податоци за секое милениче кое што било примено во ветeринарниот центар.

  • ID - нумерички тип (примарен клуч)
  • description - текстуален тип
  • color - (hexadecimal ->char,short или int)
  • dateOfBirthday - дата
  • description - текстуален тип
  • name - текстуален тип

Pet_Galery - ентитет во кој ќе се чуваат слики од миленичиња.

  • ID - нумерички тип (примарен клуч)
  • image

Type_Of_Pets - ентитет во кој ќе се чуваат податоци за различни категории на миленичиња (куче, маче итн.).

  • ID - нумерички тип (примарен клуч)
  • kind_of_pet - текстуален тип

Breeds - ентитет во кој ќе се чуваат податоци за одредена раса/сорта. Breeds e слаб ентитет бидејќи расата на милениче не постои ако не постои категоријата на милениче.

  • ID - нумерички тип (примарен клуч)
  • name - текстуален тип

Pet_Status - ентитет во кој ќе се зачувуваат сите типови на состојби кога едно милениче е во ветеринарна служба, пример: примен, на чекање, операција, закрепнува итн..

  • ID - нумерички тип (примарен клуч)
  • type - текстуелен тип
  • note - текстуален тип

Therapy - ентитет во кој ќе се зачувуваат сите настани поврзани со едно милениче

  • ID - нумерички тип (примарен клуч)
  • appointmentDate - датум
  • description - текстуален тип

Medecines - ентитет во кој ќе се чуваат сите лекови.

  • ID - нумерички тип (примарен клуч)
  • name - текстуален тип
  • description - текстуален тип

Manufacturer - ентитет во кој ќе се чуваат производителите на лекови.

  • ID - нумерички тип (примарен клуч)
  • name - текстуален тип
  • description - текстуален тип
  • state - текстуален тип
  • city - текстуален тип

Diagnostics - ентитет во кој ќе се чуваат дијагнозите за миленичињата.

  • ID - нумерички тип (примарен клуч)
  • description - текстуален тип

Jobs - ентитет во кој ќе се чуваат слободните работни места во ветеринарните центри.

  • ID - нумерички тип (примарен клуч)
  • description - текстуален тип
  • predictedSalary - нумерички тип

Reports - ентитет во кој ќе се чуваат пријавите за изгубени миленичиња.

  • ID - нумерички тип (примарен клуч)
  • description - текстуален тип

Pet_Cares - ентитет во кој ќе се чуваат барањата за услуги (Пример: за чување на милениче).

  • ID - нумерички тип (примарен клуч)
  • title - текстуален тип
  • description - текстуален тип
  • dateEnding - дата
  • start_date - дата

Products - ентитет во кој ќе се чуваат податоци за продуктите.

  • ID - нумерички тип (примарен клуч)
  • name - текстуален тип
  • description - текстуален тип
  • price - нумерички тип
  • dateAdded - дата
  • isActive - boolean (nullable)
  • category - текстуален тип
  • available_quantity - нумерички тип

Orders- ентитет во кој ќе се чуваат податоци за нарачките.

  • ID - нумерички тип (примарен клуч)
  • Quantity - нумерички тип

Blog_Post_For_Consultations - ентитет во кој ќе се чуваат сите консултации.

  • ID - нумерички тип (примарен клуч)
  • title - текстуален тип
  • description - текстуален тип
  • dateAsked - дата

Blog_Post_Answers - ентитет во кој ќе се чуваат прашањата.

  • ID - нумерички тип (примарен клуч)
  • reply - текстуален тип
  • parentID - нумерички тип
  • date_answers - дата

Релации

1. servise_for 1-N релација помеѓу Users и Pet_Cares. Еден корисник може да побара услуга за повеќе миленичиња. Едно милениче има само еден сопственик и истиот може да побара услуга од ветеринарниот центар.

2. are_adviced_on 1-N релација помеѓу Users и Blog_Post_For_Consultations. Еден корисник може да побара повеќе совети. Секој од советите припаѓа на еден корисник.

3. respond_to 1-N релација помеѓу Blog_Post_Answers и Users. Еден корисник може да одговара на повеќе прашања но секој одговор е даден од еден User.

4. need 1-N релација помеѓу Jobs и Users. За една работа се потребни повеќе корисници. На еден корисник му треба само една работа.

5. is_the_owner_of 1-N релација помеѓу Users и Pets. Еден корисник може да биде сопственик на повеќе миленичиња. Едно милениче има само еден сопственик.

6. made_by N-1 релација помеѓу Users и Diagnostics. Еден корисник (ветеринар) може да воспостави повеќе дијагнози. Една дијагноза е воспоставена од еден ветеринар.

7. include 1-N релација помеѓу Roles и Users. Kaде што за секој User ќе стои врската со неговата улога. Секој корисник ќе има една улога и една улога ќе биде за повеќе корисници.

8. extend 1-N релација помеѓу Blog_Post_For_Consultations и Blog_Post_Answers. Едно прашање може да има повеќе одговори. Но секој одговор е само за едно прашање.

9. is_in 1-N релација помеѓу Vet_Centers и Јоbs. Во еден ветеринарен центар може да има отворено повеќе работни позиции. Една работна позиција припаѓа само на еден ветеринарен центар.

10. is_located 1-N релација помеѓу Cities i Vet_Centers. Во еден град може да има повеќе ветеринарни центри, ветеринарниот центар може да се наоѓа само во еден град.

11. visit N-M релација помеѓу Pets и Vet_Centers. Во еден ветеринарен центар може да бидат донесени повеќе животни. Едно животно може да биде однесено само во еден ветeринарен центар.

12. thеre_are N-M релација помеѓу Type_Of_Pets и Products. За едeн вид на животно има повеќе продукти за продажба. Еден продукт може да биде достапен за повеќе видови миленичиња.

13. are_made N-M релација помеѓу Products и Orders. За еден продукт може да има повеќе нарачки. Во една нарачка може да има повеќе продукти.

14. available N-M релација помеѓу Products и Type_Of_Pets. Еден продукт може да биде достапен за повеќе видови на миленичиња. За еден вид има повеќе продукти кои се достапни за нарачка.

15. from 1-1 релација помеѓу Breeds и Type_Of_Pets. Една категорија на миленичиња припаѓа само на една раса. Една раса на миленичиња припаѓа само во една категорија.

16. takes N-M релација помеѓу Pets и Therapy. За едно милениче има повеќе настани. За еден настан има повеќе животни.

17. has 1-N релација помеѓу Pet_Status и Therapy. За една состојба има повеќе настани. За еден настан има само една состојба.

18. treated_by 1-N релација помеѓу Diagnostics и Therapy. За една дијагноза има повеќе терапии кои што му се даваат на миленичето. За секоја терапија има една дијагноза.

19. prescribes 1-N релација помеѓу Diagnostics и Medecines. За една дијагноза има повеќе лекови. Еден лек е само за одредена дијагноза.

20. produced N-1 релација помеѓу Medecines и Manufacturers. Одреден лек го прави само еден производител. Еден производител може да произведе повеќе лекови.

21. is_being_prepared 1-N релација помеѓу Pets и Reports. За едно милениче може да има повеќе извештаи. Еден извештај припаѓа само на едно милениче.

22. it_might_be 1-N релација помеѓу Type_Of_Pets и Pets. Вo еден вид (куче, маче) на милениче припаѓаат повеќе миленичиња. Едно милениче неможе да припаѓа во различни вида.

23. there_are_in 1-N релација помеѓу Pets и Pet_Galery. За едно милениче може да има повеќе слики. Една слика припаѓа само на едно милениче.

24. writes 1-N релација помеѓу Users и Reports. Еден корисник (доктор) може да напише повеќе извештаи. Еден извештај е напишан од еден доктор.

25. requires 1-N релација помеѓу Vet_Centers и Pet_Cares. Во еден ветеринарен центар може да биде побарано да се згрижат повеќе миленици. Услугата згрижување на едно милениче може да биде побарана само во еден ветеринарен центар.

26. is_made_in 1-N релација помеѓу Vet_Centers и Diagnostics. Во еден ветеринарен центар може да се поставуваат повеќе дијагнози. Една дијагноза истовремено може да биде поставена само во еден ветеринарен центар.

27. established N-M релација помеѓу Pets и Diagnostics. На едно милениче може да му бидат поставени повеќе дијагнози. Една иста дијагноза може да биде поставена кај повеќе миленичиња.

27. for 1-N релација помеѓу Pets_Status и Pets. Еден статус на состојба (примен, на чекање) може да го имаат повеќе миленици. Едно милениче истовремено може да има само еден статус на состојба.

28. service_for_pets 1-N релација помеѓу Pet_Cares и Pets. Една услуга може да биде побарана за повеќе милиничиња. За едно милениче истовремено може да биде побарана само една услуга.

29. make_or_aaprove 1-N релација помеѓу Users и Orders. Едeн корисник може да направи/потврди повеќе нарачки. Една нарачка може да биде направена/потврдена од само еден корисник.

Историјат

Верзија 1 - Иницијална верзија на моделот. Креирани се ентитетите и релациите меѓу истите.

Верзија 2 - Од страна на демонстраторката на лабраториски вежби ни беше предложено да ја промениме релацијата made_by N:M (Users:Diagnostics) со made_by 1:N (Users:Diagnostics).

Верзија 3 - Сами си воочивме една грешка во релацијата are_advised_on 1-N релација помеѓу Blog_Post_For_Consultations и Users. Истата ја поправивме на 1-N релација помеѓу Users и Blog_Post_For_Consultations.

Верзија 4 - Го додадовме атрибутот name кај ентитетите Medecines и Manufacturers.

Верзија 5 - Го додадовме атрибутот password кај ентитетот Users.

Верзија 6 - Го избришавме атрибутот adress кај ентитетот Cities.

Верзија 7 - 1. Со релацијата is_made_in ги поврзавме Vet_Centers со Diagnostics.
2. Со established ги поврзавме Pets со Diagnostics.
3. Со релацијата for ги поврзавме Pets со Pets_Status.
4. Избришена релацијата помеѓу Pets и Products. Помеѓу Pets i Type_of_Pets преименувана релацијата од available во there_are.
5. Во Blog_Post_Answers додаден атрибут date_answers.
6. Во Pets додаден атрибут name.
7. Во Type_of_Pets атрибутот name преименуван во kind_of_pet.
8. Во Pet_Cares додаден атрибут start_date.
9. Во Products додаден атрибут available_quantity.
10. Со релацијата make_or_approve ги поврзавме Users со Orders.
11. Релацијата помеѓу Medecines и Manufacturers преименувана во produced (заради две релации со исто име).
12. Со релацијата service_for_pets ги поврзавме Pets со Pet_Cares.

Направени промени (Промените кои што се направени се по препорака од колегите)

Самостојна изработка

Направена е промена во релацијата service_for_pets. Релацијата е променета од 1:N Pet_Cares:Pets во 1:N Pets:Pet_Cares. Промената ја направив бидејќи не е логично за едно животно да може да се побара само една услуга. За едно милениче ќе може да бидат побарувани повеќе услуги но секоја услуга истовремено ќе може да биде побарана од само едно милениче. Уште подобро би било ако се промеви во many-to-many но засега останува вака.
Атрибутот quantity e ставен да биде атрибут на релацијата are_made. Бидејќи како што беше дефинирано секој производ во една нарачка ќе добиваше иста количина.

Корегиран дијаграм

Attachments (8)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.