| | 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, која покажува кој ревју се однесува за која адреса на даден бизнис. Едно ревју може да се однесува на една адреса од бизнисот, а за една адреса може да се оставени повеќе ревјуа. |