wiki:ERModel

Version 7 (modified by 223235, 2 weeks ago) ( diff )

--

ЕР Дијаграм

kbnteamER_Diagram_final

Податочни побарувања

Ентитети

Ги содржи основните податоци за сите корисници на системот. Секој корисник има една улога и може да биде администратор, клиент или доставувач.

  • 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 – единствен идентификатор на основната рецензија.

Attachments (3)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.