| 1 | = Верзија 3 |
| 2 | == Дијаграм |
| 3 | [[Image(ERModel_v04.png, 1200px)]] |
| 4 | |
| 5 | == Податочни побарувања |
| 6 | === Ентитети |
| 7 | |
| 8 | * **Businesses** - Ентитет кој содржи листа од бизниси и информациите во врска со нив. |
| 9 | * ''Кандидат клучеви:'' |
| 10 | * business_id - PRIMARY KEY, вештачки број, уникатен за еднозначно разликување записи од Businesses, нумерички, not null (задолжителен), serial |
| 11 | * ''Атрибути:'' |
| 12 | * business_phone - текстуален, максумум 150 знаци |
| 13 | * business_hours - текстуален, максумум 150 знаци |
| 14 | * business_name - текстуален, максумум 150 знаци, задолжителен |
| 15 | * business_description - текстуален, максумум 500 знаци |
| 16 | * business_avg_stars - изведен атрибут, нумерички, помеѓу 1 и 5 |
| 17 | |
| 18 | * **Addresses** - Ентитет кој содржи листа од адреси на бизнисите. |
| 19 | * ''Кандидат клучеви:'' |
| 20 | * address_id - PRIMARY KEY, вештачки број, уникатен за еднозначно разликување записи од Addresses, нумерички, not null (задолжителен), serial |
| 21 | * ''Атрибути:'' |
| 22 | * address_street - текстуален, максумум 150 знаци |
| 23 | * address_postal_code - текстуален, максумум 150 знаци |
| 24 | * address_city - текстуален, максумум 150 знаци |
| 25 | |
| 26 | |
| 27 | * **Services** - Ентитет кој содржи листа од сервиси кои ги нудат бизнисите. |
| 28 | * ''Кандидат клучеви:'' |
| 29 | * service_id - PRIMARY KEY, вештачки број, уникатен за еднозначно разликување записи од Services, нумерички, not null (задолжителен), serial |
| 30 | * ''Атрибути:'' |
| 31 | * service_name - текстуален, максумум 150 знаци, задолжителен |
| 32 | |
| 33 | |
| 34 | * **Categories **- Ентитет кој содржи категории во кои спаѓаат бизнисите. |
| 35 | * ''Кандидат клучеви:'' |
| 36 | * category_id - PRIMARY KEY, вештачки број, уникатен за еднозначно разликување записи од Categories, нумерички, not null (задолжителен), serial |
| 37 | * ''Атрибути:'' |
| 38 | * category_name - текстуален, максумум 150 знаци, задолжителен |
| 39 | |
| 40 | |
| 41 | * **Reviews** - Ентитет кој ги содржи ревјуата оставени од корисниците. |
| 42 | * ''Кандидат клучеви:'' |
| 43 | * review_id - PRIMARY KEY, вештачки број, уникатен за еднозначно разликување записи од Reviews, нумерички, not null (задолжителен), serial |
| 44 | * ''Атрибути:'' |
| 45 | * review_text - текстуален, максумум 500 знаци, задолжителен |
| 46 | * review_title - текстуален, максумум 150 знаци, задолжителен |
| 47 | * review_stars - нумерички, помеѓу 1 и 5, задолжителен |
| 48 | * review_timestamp - timestamp, задолжителен |
| 49 | |
| 50 | * **Reviewers** - Ентитет кои ги содржи посетителите на апликацијата кои можат да се логираат и да остават reviews |
| 51 | * ''Кандидат клучеви:'' |
| 52 | * reviewer_id - PRIMARY KEY, вештачки број, уникатен за еднозначно разликување записи од Reviewers, нумерички, not null (задолжителен), serial |
| 53 | * ''Атрибути'' |
| 54 | * reviewer_email - текстуален, максумум 150 знаци, задолжителен |
| 55 | * reviewer_name - текстуален, максумум 150 знаци, задолжителен |
| 56 | * reviewer_password - текстуален, максумум 150 знаци, задолжителен |
| 57 | * reviewer_verified - булеан, задолжителен |
| 58 | |
| 59 | === Релации |
| 60 | * ** belongs_to** - релација која ги поврзува ентитетите Businesses и Categories која покажува кој бизнис припаѓа на која категорија. Бизнисот мора да припаѓа на точно една категорија, а категоријата може да припаѓа на еден или повеќе бизниси. |
| 61 | * **offers_services** - релација која ги поврзува Businesses и Services која покажува кои сервиси ги нуди одреден бизнис. Бизнисот мора да нуди еден или повеќе сервиси, а сервисот може да биде понуден од еден или повеќе бизниси. |
| 62 | * **of** - релација која ги поврзува Services и Categories, која покажува кој сервис е од која категорија. Сервисот мора да припаѓа на точно една категорија, а под категоријата може да спаѓаат еден или повеќе сервиси. |
| 63 | * **left** - релација која ги поврзува Reviews и Reviewers, која покажува кој ревју е оставен од кој ревјуер. Review мора да е оставено од точно еден reviewer, а тој reviewer може да оставил еден или повеќе reviews. |
| 64 | * **about** - релација која ги поврзува Business и Review, која покажува кои ревјуа се оставени за кој бизнис. Бизнисот може да има еден или повеќе reviews за него, а review мора да биде за точно еден бизнис. |
| 65 | * **has_address** - релација која ги поврзува Business и Addresses, која покажува кој бизнис е на која адреса. Бизнисот мора да биде на барем една адреса, а адресата мора да биде за точно еден бизнис. |
| 66 | * **is_for_address** - релација која ги поврзува Addresses и Reviews, која покажува кој ревју се однесува за која адреса на даден бизнис. Едно ревју може да се однесува на една адреса од бизнисот, а за една адреса може да се оставени повеќе ревјуа. |