= ER Дијаграм [[Image(finalFinaleV4.png)]] == Ентитети '''Ентитет: Корисник (User)''' Опис: Претставува корисник кој може да прави резервации. Примарен клуч: id (автоматски генериран). Атрибути: * Име (firstName) * Презиме (lastName) * Е-пошта (email) * Лозинка (password) * Улога (role) * Телефон (phone) * Адреса (address) * Членство (membershipLevel) * Датум на регистрација (registrationDate) '''Ентитет: Ресторан (Restaurant)''' Опис: Претставува ресторан во системот. Примарен клуч: restaurantId Атрибути: * Име (name) * Тип на кујна (cuisineType) * Адреса (address) * Телефон (phone) * Работно време (operatingHours) * Веб страна (website) * Социјални медиуми (socialMediaLinks) * Рејтинг (rating) '''Ентитет: Маса (TableEntity)''' Опис: Претставува маса во ресторан. Примарен клуч: id Атрибути: * Капацитет (capacity) * Локација (location) * Пушачка зона (isSmokingArea) * Опис (description) * Времетраење на резервација (reservationDurationHours) '''Ентитет: Резервација (Reservation)''' Опис: Претставува резервација направена од корисник. Примарен клуч: reservationID Атрибути: * Датум и време на резервација (reservationDateTime) * Број на лица (partySize) * Посебни барања (specialRequests) * Статус (status) * Време на влегување(checkInTime) * Време на одјавување (checkOutTime) * Статус на плаќање (paymentStatus) '''Ентитет: Историја на резервации (ReservationHistory)''' Опис: Претставува историски запис на претходна резервација. Примарен клуч: id Атрибути: * Датум и време на резервација (reservationDateTime) * Број на лица (partySize) * Посебни барања (specialRequests) * Статус (status) * Причина за откажување (cancellationReason) * Датум на пријавување (checkInDate) '''Ентитет: Преднарачан производ (PreorderedItem)''' Опис: Претставува производ што е однапред нарачан за резервација. Примарен клуч: id Атрибути: * Име на производ (name) * Количина (quantity) * Цена (price) '''Ентитет: Мени (Menu)''' Опис: Претставува ставка од мени на ресторан. Примарен клуч: menuID Атрибути: * Име на ставка (itemName) * Категорија (category) * Цена (price) * Опис (description) '''Ентитет: Ознака за мени (MenuTag)''' Опис: Ознака што ја карактеризира одредена ставка од мени. Примарен клуч: id Атрибути: * Име на ознака (tagName) * Вредност (tagValue) == Релации '''Релација: има (has)''' Опис: Релација 1:N помеѓу Ресторан и Мени. Детали: Секој ресторан има свое мени. Ресторан може да има повеќе менија. Едно мени припаѓа на еден ресторан. '''Релација: содржи (contains)''' Опис: Релација 1:N помеѓу Ресторан и Маса. Детали: Секој ресторан има повеќе различни маси. Ресторан содржи повеќе маси. Една маса припаѓа на еден ресторан. '''Релација: во(in)''' Опис: Релација N:1 помеѓу производ и мени. Детали: Во едно мени има повеќе производи. '''Релација: нарачно однапред (pre_ordered)''' Опис: Релација M:N помеѓу производ и резервација. Детали: Може да се одберат производи од менито да се направат пред резервацијата. '''Релација: прави (makes)''' Опис: Релација 1:N помеѓу Корисник и Резервација. Детали: Еден корисник може да направи повеќе резервации. Една резервација е направена од еден корисник. '''Релација: селектира(selected)''' Опис: Релација 1:N помеѓу Маса и Резервација. Детали: Се одбира масата(во зависност од големина, локација итн.). Еден маса може да има повеќе резервации. Една резервација е има една маса. '''Релација: која(which)''' Опис: 1:N помеѓу Ресторан и Резервација. Детали: Со правењето резервација првично се одбира ресторан. Една резервација има еден ресторан. Еден ресторан има повеќе резервации. '''Слаба релација: плаќање за(payment_for)''' Опис: 1:N помеѓу Плаќање и Резервација. Детали: Означува која резервација е платена. '''Слаба релација: прави(makes)''' Опис: 1:N помеѓу Корисник и Плаќање. Детали: Означува кој корисник извршил плаќање.