== ER дијаграм (верзија 4) [[Image(ERmodel_v4.jpg)]] == Ентитети **Users** - генерален ентитет кој што дефинира корисници на апликацијата. * ID - нумерички тип (примарен клуч) * name - текстуален тип (задолжителен атрибут) * lastName - текстуален тип (задолжителен атрибут) * phoneNumber - текстуален тип (задолжителен атрибут) * еmail - текстуален тип (опционален атрибут) **Roles** - ентитет кој чува податоци за тип на корисник кој што може да биде админ, менаџер, вработен или стандарден корисник. * ID - нумерички тип (примарен клуч) * type - текстуален тип **Cities** - ентитет во кој што ќе се чуваат сите градови во кои што има ветeринарен центар. * ID - нумерички тип (примарен клуч) * name - текстуален тип (задолжителен атрибут) * adress - текстуален тип (задолжителен атрибут) **Vet_Centers** - ентитет во кој ќе се чуваат информации за ветеринарните центри. * ID - нумерички тип (примарен клуч) * name - текстуален тип (задолжителен атрибут) * address - текстуален тип (задолжителен атрибут) * description - текстуален тип * longitude - varchar тип * latitute - varchar тип * phoneNumber - текстуален тип (задолжителен атрибут) * workingHours - нумерички тип **Pets** - ентитет во кој се чуваат податоци за секое милениче кое што било примено во ветeринарниот центар. * ID - нумерички тип (примарен клуч) * description - текстуален тип * color - (hexadecimal ->char,short или int) * dateOfBirthday - дата **Pet_Galery** - ентитет во кој ќе се чуваат слики од миленичиња. * ID - нумерички тип (примарен клуч) * image **Type_Of_Pets** - ентитет во кој ќе се чуваат податоци за различни категории на миленичиња (куче, маче итн.). * ID - нумерички тип (примарен клуч) * name - текстуален тип * description - текстуален тип **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 - дата **Products** - ентитет во кој ќе се чуваат податоци за продуктите. * ID - нумерички тип (примарен клуч) * name - текстуален тип * description - текстуален тип * price - нумерички тип * dateAdded - дата * isActive - boolean (nullable) * category - текстуален тип **Orders**- ентитет во кој ќе се чуваат податоци за нарачките. * ID - нумерички тип (примарен клуч) * Quantity - нумерички тип **Blog_Post_For_Consultations** - ентитет во кој ќе се чуваат сите консултации. * ID - нумерички тип (примарен клуч) * title - текстуален тип * description - текстуален тип * dateAsked - дата **Blog_Post_Answers** - ентитет во кој ќе се чуваат прашањата. * ID - нумерички тип (примарен клуч) * reply - текстуален тип * parentID - нумерички тип == Релации **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 релација помеѓу Pets и Products. За едно животно има повеќе продукти за продажба. Еден продукт може да биде достапен за повеќе миленичиња. **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. from** 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. Во еден ветеринарен центар може да биде побарано да се згрижат повеќе миленици. Услугата згрижување на едно милениче може да биде побарана само во еден ветеринарен центар. == Историјат [https://develop.finki.ukim.mk/projects/VetCareConnect/attachment/wiki/ERModel/ERmodel_v1.jpg Верзија 1] - Иницијална верзија на моделот. Креирани се ентитетите и релациите меѓу истите. [https://develop.finki.ukim.mk/projects/VetCareConnect/attachment/wiki/ERModel/ERmodel_v2.jpg Верзија 2] - Од страна на демонстраторката на лабраториски вежби ни беше предложено да ја промениме релацијата made_by N:M (Users:Diagnostics) со made_by 1:N (Users:Diagnostics). [https://develop.finki.ukim.mk/projects/VetCareConnect/attachment/wiki/ERModel/ERmodel_v3.jpg Верзија 3] - Сами си воочивме една грешка во релацијата are_advised_on 1-N релација помеѓу Blog_Post_For_Consultations и Users. Истата ја поправивме на 1-N релација помеѓу Users и Blog_Post_For_Consultations. [https://develop.finki.ukim.mk/projects/VetCareConnect/attachment/wiki/ERModel/ERmodel_v4.jpg Верзија 4] - Го додадовме атрибутот name кај ентитетите Medecines и Manufacturers.