== ЕР Дијаграм [[Image(advdb.jpg​)]] == Податочни побарувања === Ентитети == Објаснување на ентитетите Овој документ ги опишува сите ентитети и нивните атрибути дефинирани во последната верзија на SQL-шемата – schema7.0_dll.sql. === API_USER Ги содржи основните податоци за сите корисници на системот. Секој корисник има една улога и може да биде администратор, клиент или доставувач. - user_id – единствен идентификатор на корисникот и примарен клуч. - user_first_name – име на корисникот. - user_last_name – презиме на корисникот. - user_email – единствена адреса за електронска пошта со проверка на форматот. - user_phone_no – изборен и единствен телефонски број со проверка на форматот. - user_role – улога на корисникот; дозволени вредности се api_admin, customer и driver. === COMPANY Ги претставува компаниите чии вработени можат да нарачуваат преку системот. - company_id – единствен идентификатор на компанијата и примарен клуч. - company_name – единствено име на компанијата. - company_address – адреса на компанијата на која се организира доставата. === RESTAURANT Ги содржи рестораните што нудат храна и пијалоци и соработуваат со компаниите. - rest_id – единствен идентификатор на ресторанот и примарен клуч. - rest_name – име на ресторанот. - rest_email – единствена адреса за електронска пошта со проверка на форматот. - rest_location – физичка локација или адреса на ресторанот. - rest_phone – единствен телефонски број со проверка на форматот. - rest_website – изборна и единствена веб-страница на ресторанот. === CATEGORY Служи за групирање на јадењата според нивниот вид. - cat_id – единствен идентификатор на категоријата и примарен клуч. - cat_name – единствено име на категоријата. - cat_description – изборен опис на категоријата. === CONTRACT_STATUS Ги дефинира можните статуси на договорите меѓу компаниите и рестораните. - contract_status_id – единствен идентификатор на статусот и примарен клуч. - contract_status_name – единствен назив на статусот на договорот. === CUSTOMER_LOYALTY_STATUS Ги дефинира можните статуси на членството во програмата за лојалност. - cus_loyalty_status_id – единствен идентификатор на статусот и примарен клуч. - cus_loyalty_status_name – единствен назив на статусот на лојалност. === DELIVERY_STATUS Ги дефинира состојбите низ кои може да помине една достава. - d_status_id – единствен идентификатор на статусот и примарен клуч. - d_status_name – единствен назив на статусот на доставата. === ORDER_STATUS Ги дефинира можните статуси на клиентските нарачки. - o_status_id – единствен идентификатор на статусот и примарен клуч. - o_status_name – единствен назив на статусот на нарачката. === INGREDIENT Ги претставува состојките што се користат за подготовка на јадењата. - ingr_id – единствен идентификатор на состојката и примарен клуч. - ingr_name – единствено име на состојката. === ALERGEN Ги содржи алергените што можат да бидат присутни во состојките. - alergen_id – единствен идентификатор на алергенот и примарен клуч. - alergen_name – единствено име на алергенот. - alergen_description – изборен опис на алергенот и неговото влијание. === LOYALTY_TIER Ги дефинира нивоата и поволностите во програмата за лојалност. - tier_id – единствен идентификатор на нивото и примарен клуч. - tier_name – единствено име на нивото. - tier_minimum_points – минимален број поени потребни за нивото; не смее да биде негативен. - tier_maximum_points – максимален број поени за нивото; мора да биде еднаков или поголем од минималниот број. - tier_discount_percentage – процент на попуст во интервал од 0 до 100. - tier_free_delivery_eligibility – означува дали нивото овозможува бесплатна достава. - tier_priority_support – означува дали нивото овозможува приоритетна поддршка. - tier_created_at – датум на создавање на нивото. - tier_update_at – датум и време на последното ажурирање на нивото. === REVIEW Ги чува заедничките информации за рецензиите на нарачките и доставите. - review_id – единствен идентификатор на рецензијата и примарен клуч. - review_comment – изборен текстуален коментар. - review_created_at – датум и време на создавање на рецензијата. - review_rating – општа оцена во интервал од 1 до 5. === API_ADMIN Ги претставува администраторите и рестораните со кои тие управуваат. - user_id – идентификатор на корисникот и примарен клуч; мора да постои како корисник со администраторска улога. - user_role – фиксна улога со вредност api_admin. - rest_id – идентификатор на ресторанот со кој е поврзан администраторот. === CUSTOMER Ги претставува клиентите, односно вработените што создаваат нарачки преку системот. - user_id – идентификатор на корисникот и примарен клуч; мора да постои како корисник со клиентска улога. - user_role – фиксна улога со вредност customer. - company_id – идентификатор на компанијата во која работи клиентот. === DRIVER Ги претставува доставувачите ангажирани од рестораните. - user_id – идентификатор на корисникот и примарен клуч; мора да постои како корисник со улога на доставувач. - user_role – фиксна улога со вредност driver. - rest_id – идентификатор на ресторанот за кој работи доставувачот. === CONTRACT Ја претставува деловната соработка меѓу една компанија и еден ресторан во определен временски период. - contract_id – единствен идентификатор на договорот и примарен клуч. - company_id – идентификатор на компанијата што учествува во договорот. - contract_end_date – краен датум на договорот. - contract_start_date – почетен датум на договорот. - contract_status_id – идентификатор на тековниот статус на договорот. - rest_id – идентификатор на ресторанот што учествува во договорот. Крајниот датум на договорот не смее да биде пред почетниот датум. === DELIVERY Ги содржи информациите за транспортот на заедничката нарачка до компанијата. - delivery_id – единствен идентификатор на доставата и примарен клуч. - delivery_date – датум на доставување; стандардно се поставува тековниот датум. - delivery_notes – изборни дополнителни забелешки за доставата. - d_status_id – идентификатор на статусот на доставата. - driver_user_id – изборен идентификатор на назначениот доставувач. === COMPANY_ORDER Претставува заедничка компаниска нарачка во која се групираат индивидуалните нарачки на вработените. - comp_order_id – единствен идентификатор на компаниската нарачка и примарен клуч. - company_id – идентификатор на компанијата за која е создадена нарачката. - delivery_id – изборен и единствен идентификатор на доставата поврзана со нарачката. === MEAL Ги претставува јадењата што рестораните ги нудат во своите менија. - meal_id – единствен идентификатор на јадењето и примарен клуч. - cat_id – идентификатор на категоријата во која припаѓа јадењето. - meal_description – изборен опис на јадењето. - meal_name – име на јадењето; мора да биде единствено во рамките на ресторанот. - meal_price – цена на јадењето; не смее да биде негативна. - meal_weight – тежина на јадењето; мора да биде поголема од нула. - rest_id – идентификатор на ресторанот што го нуди јадењето. === DRINK Ги претставува пијалоците што рестораните ги нудат во своите менија. - drink_id – единствен идентификатор на пијалокот и примарен клуч. - drink_milliliters – количина на пијалокот во милилитри; мора да биде поголема од нула. - drink_name – име на пијалокот; мора да биде единствено во рамките на ресторанот. - drink_price – цена на пијалокот; не смее да биде негативна. - rest_id – идентификатор на ресторанот што го нуди пијалокот. === CUSTOMER_LOYALTY Го следи учеството на секој клиент во програмата за лојалност. - cus_loyalty_id – единствен идентификатор на членството и примарен клуч. - cus_loyalty_curr_points – тековен број поени; почнува од нула и не смее да биде негативен. - cus_loyalty_joined_at – датум и време кога клиентот се приклучил на програмата. - cus_loyalty_status_id – идентификатор на статусот на членството. - user_id – единствен идентификатор на клиентот; еден клиент може да има само едно членство. - tier_id – идентификатор на тековното ниво на лојалност. === CUSTOMER_ORDER Претставува индивидуална нарачка создадена од конкретен клиент. - order_id – единствен идентификатор на нарачката и примарен клуч. - comp_order_id – идентификатор на компаниската нарачка во која е вклучена. - customer_user_id – идентификатор на клиентот што ја создал нарачката. - order_datetime – датум и време на создавање на нарачката. - o_status_id – идентификатор на статусот на нарачката. - order_total – вкупен износ на нарачката; почнува од нула и не смее да биде негативен. === INVOICE Претставува фактура издадена за една заедничка компаниска нарачка. - invoice_id – единствен идентификатор на фактурата и примарен клуч. - comp_order_id – единствен идентификатор на компаниската нарачка; за една нарачка може да постои најмногу една фактура. === LUNCH_TIME Ги дефинира термините за ручек и временските правила поврзани со договорот. - lunch_time_id – единствен идентификатор на терминот и примарен клуч. - comp_order_id – изборен идентификатор на компаниската нарачка поврзана со терминот. - contract_id – идентификатор на договорот за кој е дефиниран терминот. - lunch_end – датум и време на завршување на терминот. - lunch_preorder_offset – дозволено време за предвремено нарачување; не смее да биде негативно. - lunch_start – датум и време на почеток на терминот. - lunch_weekday – ден во неделата за кој важи терминот. Времето на завршување мора да биде по времето на почеток. === MEAL_INGREDIENT Ја претставува врската повеќе-спрема-повеќе меѓу јадењата и состојките. - ingr_id – идентификатор на состојката. - meal_id – идентификатор на јадењето. Комбинацијата од двата идентификатори е единствена и претставува сложен примарен клуч. === ALERGEN_INGREDIENT Ја претставува врската повеќе-спрема-повеќе меѓу алергените и состојките. - alergen_id – идентификатор на алергенот. - ingr_id – идентификатор на состојката. Комбинацијата од двата идентификатори е единствена и претставува сложен примарен клуч. === ORDER_MEAL Ги поврзува индивидуалните нарачки со избраните јадења. - meal_id – идентификатор на избраното јадење. - order_id – идентификатор на нарачката во која е вклучено јадењето. Комбинацијата е сложен примарен клуч, поради што истото јадење може да се појави само еднаш во една нарачка. === ORDER_DRINK Ги поврзува индивидуалните нарачки со избраните пијалоци. - drink_id – идентификатор на избраниот пијалок. - order_id – идентификатор на нарачката во која е вклучен пијалокот. Комбинацијата е сложен примарен клуч, поради што истиот пијалок може да се појави само еднаш во една нарачка. === DELIVERY_REVIEW Содржи дополнителни оценки поврзани со конкретна достава. - delivery_review_id – единствен идентификатор на рецензијата за достава и примарен клуч. - del_review_courier_rating – оцена за доставувачот во интервал од 1 до 5. - del_review_speed_rating – оцена за брзината на доставата во интервал од 1 до 5. - delivery_id – единствен идентификатор на оценетата достава; една достава може да има најмногу една рецензија. - review_id – единствен идентификатор на основната рецензија. === ORDER_REVIEW Содржи дополнителни оценки поврзани со конкретна клиентска нарачка. - order_review_id – единствен идентификатор на рецензијата за нарачка и примарен клуч. - order_id – единствен идентификатор на оценетата нарачка; една нарачка може да има најмногу една рецензија. - order_review_food_rating – оцена за храната во интервал од 1 до 5. - order_review_res_rating – оцена за ресторанот во интервал од 1 до 5. - review_id – единствен идентификатор на основната рецензија.