= 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) '''Ентитет: Историја на цени (PriceHistory)''' Опис: Претставува историја на промени на цените на артиклите од менито. Примарен клуч: priceHistoryID (автоматски генериран). Атрибути: * Стара цена (oldPrice) * Датум на промена (changeDate) == Релации '''Релација: прави (makes)''' Опис: Релација 1:N помеѓу Корисник и Резервација. Детали: Еден корисник може да направи повеќе резервации. Секоја резервација припаѓа на еден корисник. '''Релација: има (offers)''' Опис: Релација 1:N помеѓу Ресторан и Мени. Детали: Секој ресторан има свое мени. Ресторан може да има повеќе менија. Едно мени припаѓа на еден ресторан. '''Релација: содржи (contains)''' Опис: Релација 1:N помеѓу Ресторан и Маса. Детали: Секој ресторан има повеќе маси. Една маса припаѓа на еден ресторан. '''Релација: направена_во (which)''' Опис: Релација 1:N помеѓу Ресторан и Резервација. Детали: Секоја резервација се прави во еден ресторан. '''Релација: резервирана_на (selected)''' Опис: Релација 1:N помеѓу Маса и Резервација. Детали: Секоја резервација е направена за одредена маса. '''Релација: содржи (pre_ordered)''' Опис: Релација 1:N помеѓу Резервација и Преднарачани производи. Детали: Една резервација може да има повеќе преднарачки. '''Релација: има_ознаки (has_tag)''' Опис: Релација 1:N помеѓу Мени и MenuTag. Детали: Едно мени може да има повеќе ознаки (тагови). '''Релација: има_резервација (has_reservation_record)''' Опис: Релација 1:N помеѓу Корисник и Историја на резервации. Детали: Еден корисник може да има повеќе записи во историјата на резервации. Секој запис во историјата припаѓа на еден корисник. '''Релација: резервирано_на (was_reserved_in)''' Опис: Релација 1:N помеѓу Маса и Историја на резервации. Детали: Една маса може да има повеќе записи за резервации во историјата. Секој запис е поврзан со една маса. '''Релација: се_одржа_во (took_place_at)''' Опис: Релација 1:N помеѓу Ресторан и Историја на резервации. Детали: Секој запис во историјата на резервации припаѓа на еден ресторан. '''Релација: има_цена (had_price_change)''' Опис: Релација 1:N помеѓу Мени и Историја на цени. Детали: Едно мени може да има повеќе записи за промена на цената. Секој запис во историјата припаѓа на едно мени. '''Релација: порачано_од (ordered_from)''' Опис: Релација 1:N помеѓу Мени и Преднарачани производи. Детали: Едно мени може да содржи повеќе преднарачки. Секој преднарачан производ е поврзан со едно мени.