= ER Дијаграм [[Image(finalERDiagram.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) == Релации '''Релација: прави (makes)''' Опис: Релација 1:N помеѓу Корисник и Резервација. Детали: Еден корисник може да направи повеќе резервации. Секоја резервација припаѓа на еден корисник. '''Релација: има (has)''' Опис: Релација 1:N помеѓу Ресторан и Мени. Детали: Секој ресторан има свое мени. Ресторан може да има повеќе менија. Едно мени припаѓа на еден ресторан. '''Релација: содржи (contains)''' Опис: Релација 1:N помеѓу Ресторан и Маса. Детали: Секој ресторан има повеќе маси. Една маса припаѓа на еден ресторан. '''Релација: направена_во (made_in)''' Опис: Релација 1:N помеѓу Ресторан и Резервација. Детали: Секоја резервација се прави во еден ресторан. '''Релација: резервирана_на (reserved_at)''' Опис: Релација 1:N помеѓу Маса и Резервација. Детали: Секоја резервација е направена за одредена маса. '''Релација: содржи (includes)''' Опис: Релација 1:N помеѓу Резервација и Преднарачани производи. Детали: Една резервација може да има повеќе преднарачки. '''Релација: има_ознаки (has_tags)''' Опис: Релација 1:N помеѓу Мени и MenuTag. Детали: Едно мени може да има повеќе ознаки (тегов).