= ''Верзија 1'' == ''Дијаграм'' [[Image(ERModel_v03.jpg)]] == ''Податочни побарувања'' ''**Ентитети**'' ''1. NARACKA '' - ентитет кој чува податоци за нарачки - Примарен клуч: naracka_id, вештачки нумерички идентификатор за секоја инстанца од NARACKA Атрибути: - status - тип varchar (задолжителен) ''2. HRANA '' - ентитет кој чува податоците за храната која ја нудат продажните места - Примарен клуч: id_stavka, вештачки идентификатор за секоја инстанца од HRANA Атрибути: - ime_hra - тип varchar (задолжителен) ''3. CENA'' - слаб ентитет кој зависи од ентитет HRANA и служи за дефинирање на цената на храната во даден временски период. - Примарен клуч: (broj_cena, id_stavka) Атрибути: - iznos - тип integer (задолжителен) - vazi_od - тип timestamp (задолжителен) - vazi_do - тип timestamp (опционален) ''4. NAMIRNICA'' - ентитет кој чува податоци за намирниците од кои се прави храната - Примарен клуч: id_namirnica, вештачки идентификатор за секоја инстанца од NAMIRNICA Атрибути: - dali_alergent: тип boolean (задолжителен) - ime_nam: тип varchar (задолжителен) ''5. PRODAZHNOMESTO '' - ентитет кој чува податоци за продажните места кои нудат храна преку апликацијата - Примарен клуч: id_mesto, вештачки идентификатор за секоја инстанца од PRODAZHNOMESTO Атрибути: - ime - тип varchar (задолжителен) - lokacija - композитен атрибут составен од ulica и број - ulica - tip varchar (задолжителен) - broj - tip integer (задолжителен) ''6. FRANSHIZA '' - ентитет кој чува податоци за франшизите кои ја користат апликацијата за преку свооите продажни места нудат храна - Примарен клуч: franzhiza_id, вештачки идентификатор за секоја инстанца од FRANSHIZA Атрибути: - ime: тип varchar (задолжителен) ''7. PAKET '' - ентитет кој чува податоци за разни пакети кои ги нудат продажните места - Примарен клуч: paket_id, вештачки идентификатор за секоја инстанца од PAKET ''8. KORISNIK '' - ентитет кој чува податоци за корисници - Кандидат клучеви: username, korisnik_id. Секој корисник ќе има различен username, односно во системот нема да може да има двајца корисници со ист username. Иако овој кандидат клуч уникатно ќе ги идентификува ентитетите, сепак не е добра пракса да се земе текстуален податок за примарен клуч од перформансни причини. - Примарен клуч: korisnik_id, вештачки идентификатор за секоја инстанца од KORISNIK Атрибути: - ime - тип varchar (опционален) - datum_kreiranje - тип timestamp (задолжителен) ''9. POTROSUVAC '' - изведен ентитет од KORISNIK, кој чува податоци за кориниците кои нарачуваат храна преку апликацијата - Примарен клуч: korisnik_id, наследен од KORISNIK Атрибути: - brojnaracki - тип integer (задолжителен) ''10. DOSTAVUVAC '' - изведен ентитет од KORISNIK, кој чува податоци за корисници кои се доставувачи на храната - Примарен клуч: korisnik_id, наследен од KORISNIK Атрибути: - brojdostavi - тип integer (задолжителен) ''11. ADMIN '' - изведен ентитет од KORISNIK, кој чува податоци за корисници кои ќе ги додаваат продажните места и ќе ги одобруваат доставувачите. - Примарен клуч: korisnik_id, наследен од KORISNIK ''12. VRABOTENPD '' - изведен ентитет од KORISNIK, кој чува податоци за корисници кои работат во продажните места кои нудат храна преку апликацијата - Примарен клуч: korisnik_id, наследен од KORISNIK ''13. NAPLATA '' - ентитет кој чува податоците за наплатата која треба да направи доставувачот, а треба да ја плати потрошувачот - Примарен клуч: , naplata_id, вештачки идентификатор за секоја инстанца од NAPLATA Атрибути: - iznos - integer - nacin_pl: тип varchar(задолжителен) ''14. KATEGORIJA '' - ентитет кој чува податоци за категориите во кои може да припаѓа храната и намирниците - Примарен клуч: id_kategorija, вештачки идентификатор за секоја инстанца од KATEGORIJA Атрибути: - ime_kat: тип varchar(задолжителен) ''15. VOZILO '' - ентитет кој чува податоци за возилата кои ги користат доставувачите - Примарен клуч: vozilo_id, вештачки идентификатор за секоја инстанца од VOZILO Атрибути: - tip_vozilo: тип varchar (задолжителен) ''16. ZALIHA '' - слаб ентитет кој зависи од HRANA и притоа чува податоци за количеството на одредена храна во продажните места - Примарен клуч: (id_stavka, broj_zaliha), broj_zaliga е вештачки парцијален клуч Атрибути: - kolicina - тип integer (задолжителен) ''17. LOKACIJA '' - ентитет кој чува податоци за локацијата на потрошувачот - Примарен клуч: lokacija_id, вештачки идентификатор за секоја инстанца од LOKACIJA Атрибути: - adresa - тип varchar (задолжителен) - број - тип integer (задолжителен) ''18. KUPON '' - ентитет кој чува податоци за купоните кои потрошувачите ги добиваат од направените нарачки - Примарен клуч: kupon_id, вештачки идентификатор за секоја инстанца од KUPON Атрибути: - iznos_kupon - тип integer (задолжителен) ''**Релации**'' - '' dobiva '' - 1:N релација помеѓу POTROSUVAC и KUPON што означува дека купон може да биде во релација со еден потрошувач, додека еден потрошувач може да биде во релација со повеќе купони. - '' se_koristi '' - 1:1 релација помеѓу KUPON и NAPLATA што означува дека еден купон може да се користи во една нарачка и дека во една наплата можат да се користат повеќе купони. - '' raboti '' - 1:N релација помеѓу PRODAZHNOMESTO и VRABOTENPD што означува дека еден вработен може да работи на најмногу едно продажно место, додека во едно продажно место можат да работат повеќе вработени. - '' se_naogja '' - 1:N релација помеѓу LOKACIJA и POTROSUVAC што означува дека еден потрошувач може да се наоѓа на најмногу една локација, додека на една локација можат да се наоѓаат повеќе потрошувачи. - '' plakja '' - 1:N релација помеѓу POTROSUVAC и NAPLATA што означува дека секоја наплата мора да биде во релација со точно еден потрошувач, додека еден потрошувач може да биде во релација со повеќе наплати. - '' sledi '' - 1:1 релација помеѓу KUPON и NARACKA што означува дека со една нарачка може да следува еден купон, а еден купон може да следува со една нарачка. - '' e_platena '' – 1:1 релација помеѓу NAPLATA и NARACKA што значи дека една нарачка може да биде платена од една наплата, додека со една наплата мора да се плати точно една нарачка. - '' pripagja '' – 1:N релација помеѓу FRANSHIZA и PRODAZHNOMESTO што означува дека една франшиза може да има повеќе продажни места и едно продажно место може да биде продажно место на најмногу една франшиза - '' poracuva '' – 1:N релација помеѓу POTROSUVAC и NARACKA што означува дека еден потрошувач може да порачува повеќе нарачки, додека една нарачка мора да биде порачана еден потрошувач. - '' sodrzi '' – N:N релација помеѓу NARACKA и HRANA што означува дека во една нарачка може да се содржат повеќе видови на храна, додека еден вид на храна може да се содржи во повеќе нарачки. - '' naplakja '' – 1:N релација помеѓу DOSTAVUVAC и NAPLATA што означува секоја наплата мора да биде наплатена од точно еден доставувач, додека еден доставувач може да наплати повеќе наплати. - '' upravuva '' – 1:N релација помеѓу VOZILO и DOSTAVUVAC што означува дека едно возило може да биде управувано од повеќе доставувачи, додека еден доставувач може да управува најмногу едно возило. - '' ima '' – N:N релација помеѓу NARACKA и PAKET што означува дека во една нарачка може да има повеќе пакети, а еден пакет може да го има во повеќе нарачки. - '' sprema '' – 1:N релација помеѓу PRODAZHNOMESTO и NARACKA што означува дека секоја нарачка мора да биде спремана во продажно место, а во едно продажно место може да се спремаат повеќе нарачки. - '' dostavuva '' – 1:N релација помеѓу DOSTAVUVAC и NARACKA што означува дека една нарачка може да биде доставувана од најмногу еден доставувач, додека еден доставувач може да доставува повеќе нарачки. - '' odobruva '' – 1:N релација помеѓу ADMIN и DOSTAVUVAC што означува дека еден админ може да одобрува повеќе доставувачи, но секој доставувач мора да биде одобрен од админ. - '' pripagja '' – N:N релација помеѓу HRANA и KATEGORIJA што означува дека една храна може да припаѓа на повеќе категории и во една категорија може да припаѓаат повеќе видови на храна. - '' dodava '' – 1:N релација помеѓу ADMIN и PRODAZHNOMESTO што означува дека секое продажно место мора да биде додадено од точно еден админ, додека админ може да додава повеќе продажни места. - '' nudi '' – N:N релација помеѓу PRODAZHNOMESTO и PAKET што означува дека секој пакет мора да се нуди на барем едно продажно место, додека продажното место може да нуди, но не е задолжително, повеќе пакети. - '' gotvi '' – 1:N релација помеѓу PRODAZHNOMESTO и HRANA што означува дека едно продажно место може да готви повеќе видови на храна, а една храна може да биде готвена на едно продажно место. - '' podgotvuva '' – 1:N релација помеѓу VRABOTENPD и PAKET што означува дека секој пакет мора да биде подготвен од точно еден вработен, а еден вработен може да подготвува повеќе пакети. - '' sodrzi ''– N:N релација помеѓу PAKET и HRANA што означува дека еден пакет може да содржи повеќе видови на храна, а една храна може да биде во повеќе пакети. - '' dodava '' – 1:N релација помеѓу VRABOTENPD и HRANA што означува дека еден вработен може да додава повеќе видови храна, но не е задолжително, додека секоја храна мора да биде додадена од точно еден вработен. - '' na '' – 1:N релација помеѓу STATUS и NARACKA што означува дека една нарачка може да влези во релација со најмногу еден статус, а еден статус може да влези во релација со повеќе нарачки. - '' pripagja '' – N:N релација помеѓу NAMIRNICA и KATEGORIJA што означува дека во една категорија може да припаѓаат повеќе намирници, а една намирница да припаѓа во повеќе категории. - '' e_napravena '' – N:N релација помеѓу HRANA и NAMIRNICA што означува дека една храна може да биде направена од повеќе намирници, а од една намирница може да се направат повеќе видови храна. - '' cini '' – 1:N релација помеѓу HRANA и CENA што означува дека една храна може да биде во релација со повеќе цени, но секоја цена мора да биде во релација со точно една храна. - '' e_dodatok '' – N:N релација помеѓу HRANA и NAMIRNICA што означува дека една храна како додаток да има повеќе намирници, додека една намирница може да биде додаток на повеќе видови на храна. == ''Историјат'' '''[attachment:ERModel_v01.jpg 1. Верзија 1]''' - препорака од страна на професорот за додавање на атрибут dali_alergent кај ентитетот Namirnica. Промена на кардиналноста на релацијата помеѓу Naracka и Status (од N:N променета во N:1) \\ '''[attachment:ERModel_v02.jpg 2. Верзија 2]''' - По потреба во фаза 4, додадени се два атрибути, datum_naplata и datum_naracka, соодветно на ентитетите NAPLATA и NARACKA \\ '''[attachment:ERModel_v03.jpg 3. Верзија 3]''' - По потреба во фаза 5 е додаден атрибут password на ентитет KORISNIK