= ER Дијаграм [[Image(finalFinaleV3.png)]] == Ентитети '''Ентитет: Корисник (Customer)''' Опис: Претставува корисник кој може да прави резервации и да плаќа. Примарен клуч: customerId (автоматски генериран). Атрибути: * Датум на регистрација (registrationDate) * Име (firstName) * Презиме (lastName) * Е-пошта (email) * Лозинка (password) * Улога (role) * Адреса (address) * Телефон (phone) * Ниво на членство (membershipLevel) '''Ентитет: Ресторан (Restaurant)''' Опис: Претставува ентитет кој содржи информации за ресторани. Примарен клуч: RestaurantID (автоматски генериран). Атрибути: * Оцена (rating) * Линкови до социјални мрежи (socialMediaLinks) * Веб-страница (website) * Работно време (operatingHours) * Телефон (phone) * Тип на кујна (cusineType) * Адреса (address) * Име (name) * Капар (deposit) ако бара самиот ресторан '''Ентитет: Мени (Menu)''' Опис: Претставува мени поврзано со ресторан. Примарен клуч: MenuID (автоматски генериран). Атрибути: * Категорија (category) '''Ентитет: Производ (Item)''' Опис: Претставува продукт од менито за одреден ресторан. Примарен клуч: ItemId (автоматски генериран). * Име на ставката (itemName) * Цена (price) * Опис (description) * Информации за исхрана (dietaryInformation) '''Ентитет: Маса (Table)''' Опис: Претставува маса во ресторан која може да се резервира. Примарен клуч: TableID (автоматски генериран). Атрибути: * Капацитет (capacity) * Локација (location) * Дали е дозволено пушење (isSmokingArea) * Опис (description) '''Ентитет: Резервација (Reservation)''' Опис: Претставува резервација направена од корисник. Примарен клуч: ReservationID (автоматски генериран). Атрибути: * Статус на плаќање (paymentStatus) * Број на луѓе (partySize) * Датум и време на резервација (reservationDateTime) * Специјални барања (specialRequests) * Време на пристигнување (checkInTime) * Време на заминување (checkOutTime) '''Ентитет: Плаќање (Payment)''' Опис: Слаб ентитет кој го опишува процесот на плаќање на резервацијата. Парцијален клуч: paymentId - Вештачки генериран ID за плаќањето. Атрибути: * Датум (date) * Број на резервација (reservation_nr) * Вкупна цена (total_price) * Статус на плаќање (isPaid) == Релации '''Релација: има (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 помеѓу Корисник и Плаќање. Детали: Означува кој корисник извршил плаќање.