== Верзија 4 == E-R Дијаграм [[Image(ERDiagram_v04,.jpg)]] === == Податочни побарувања === Ентитети * **Covek** - ентитет кој ги има податоците потребни да се чуваат за секој поединец (корисник). Од овој ентитет произлегуваат уште 2 други.\\ * ''Кандидат клучеви:'' ''**__covek_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Covek''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:''\\ * ime - од тип String (задолжителен) * prezime - од тип String (задолжителен) * EMBG - од тип int/long int (задолжителен) * e-mail - од тип String (задолжителен) * password - од тип String (задолжителен) * telefoni - од тип int/long int (опционален)\\ * **Pacient** - произлегува од Човек.\\ * ''Кандидат клучеви:'' ''**__pacient_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Pacient''. Претставува PRIMARY_KEY (задолжителен).\\ * **Doktor** - ентитет кој произлегува од Човек.\\ * ''Кандидат клучеви:'' ''**__br_licenca__**'', нумерички идентификатор кој го имаат сите доктори за секоја инстанца од ''Doktor''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:''\\ * opis- од тип String (задолжителен) * **Specijalnost** - ги чува сите специјалности на докторите (специјалисти). * ''Кандидат клучеви:'' ''**__specijalnost_id__**'', вештачки нумерички идентификатор кој го имаат специјалностите за секоја инстанца од ''Specijalnost''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:''\\ * naziv - од тип String (задолжителен)\\ * **Bolnica** - ентитет во кој се чува листа на сите болници.\\ * ''Кандидат клучеви:'' ''**__bolnica_id__**'', вештачки нумерички идентификатор кој го имаат сите болници за секоја инстанца од ''Bolnica''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:'' * naziv - од тип String (задолжителен) * grad - од тип String (задолжителен) * adresa - од тип String и е атрибут со повеќе вредности (ulica - од тип String и broj - од тип int) (задолжителен)\\ * **Oddel** - ентитет во кој се чува листа на сите оддели во болниците. Овој е слаб ентитет и е во зависна релација со доктор. * ''Кандидат клучеви:'' ''**__oddel_id__**'', вештачки нумерички идентификатор кој го имаат сите оддели во болниците за секоја инстанца од ''Oddel''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:'' * naziv - од тип String (задолжителен)\\ * **Pregled** - чува ИД и време за секој извршен преглед. * ''Кандидат клучеви:'' ''**__pregled_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Pregled''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:'' * vreme - од тип date (задолжителен)\\ * **Upat** - потребен за да може пациентот да закаже термин кај специјалист. * ''Кандидат клучеви:'' ''**__upat_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Upat''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * dijagnoza - од тип String (задолжителен)\\ * **Termin** - листа на достапни термини за закажување. Претставува слаб ентитет и е во зависна врска со доктор. * ''Кандидат клучеви:'' ''**__termin_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Termin''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * datum - од тип date (задолжителен) * cas - од тип dateTime (задолжителен)\\ * **Transakcija** - чува листа на извршени трансакции. * ''Кандидат клучеви:'' ''**__tran_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Transakcija''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * suma - од тип int/long int (задолжителен) * smetka_bolica - од тип int/long int (задолжителен)\\ * **Rezervacija** - потребен за да може пациентот да закаже термин кај специјалист. * ''Кандидат клучеви:'' ''**__rezervacija_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Rezervacija''. Претставува PRIMARY_KEY (задолжителен). === Релации * **pravi** - Секој доктор може да прави преглед. Еден доктор може да прави повеќе прегеди, а еден преглед може да биде направен/извршен од еден доктор. * **dobiva** - Пациент добива упат. Еден пациент може да добие повеќе упати, а еден упат мора да биде на некој пациент. Тотално учество од страната на упат. * **odi_na** - Пациент оди на преглед. Еден пациент може да оди на еден или повеќе прегледи, на еден преглед оди еден пациент во одредено време. * **raboti_vo** - Доктор работи во оддел. Од двете страни има тотално учество. Тоа значи дека во еден оддел мора да работи барем еден доктор, а еден доктор мора да работи во само еден оддел. * **objavuva** - Слаба релација помеѓу термин и доктор. Еден термин мора да е објавен од точно еден доктор и еден доктор може да објави повеќе термини. Тотално учество од страната на термин. * **go_ima_vo** - Тотално учество од страната на оддел. Еден оддел мора да биде во една болница, во една болница може да има еден или повеќе оддели. * **izdaden_za** - Упатот е издаден/наменет за во точно еден оддел, за во еден оддел можат да бидат издадени повеќе упати. Тотално учество од страната на упат. * **se_dobiva** - Од извршен преглед може да се добијат повеќе упати, а еден упат може да биде напишан/издаден врз основа на еден извршен преглед. * **se_potvrduva_so** - Со избирање на даден термин мора да се направи една резервација, а резервацја може да се направи со избирање на еден термин. Тотално учество од страната на резервација. * **pravi_verifikacija_so** - Резервацијата се потврдува со трансакција. Со една трансакција може да се потврди една резервација и една резервација може да биде потврдена со една трансакција. * **specijalizira** - Еден доктор може да специјализира во една специјалност, во една специјалност може да специјализираат повеќе доктори. * **nameneta_za** - Една специјалност е наменета за во повеќе оддели, за во еден оддел е наменета една специјалност. * **rezerviran** - Еден упат е резервиран за една резервација, за една резервација има еден упат. == Историјат * **[wiki:ERDiagram_v01 Верзија 1:]** Иницијална верзија на моделот. Креирани се ентитетите и релациите меѓу истите. * **[wiki:ERDiagram_v02 Верзија 2:]** Измени направени според забелешките од асистентот. Додаден е ентитет специјалност, измена во релацијата помеѓу оддел и болница. Сменета е релацијата така да може секој доктор да прави преглед, а не само матичен. Додадени релации помеѓу специјалист и специјалност и помеѓу оддел и специјалност. Додадена релација помеѓу специјалист и упат, така што и специјалист може да дава упат. (Ticket #1) * **[wiki:ERDiagram_v03 Верзија 3:]** После долги дискусии со членовите од тимот и професорот, одлучивме да направиме повеќе промени. Делот со login, register и permisii е отстранет. Дополнително, со членовите од тимот направивме промена така да нема специјализација на Доктор (нема матичен и специјалист како претходно). Има промени во имињата на некои од релациите кои претходно беа несоодветни, како и отстранивме непотребни атрибути кај некои од ентитетите (воглавно имаше атрибути, а ентитетите веќе се во релација меѓусебно). * **[wiki:ERModel Верзија 4:]** Промени во однос на Ticket #2. ==