wiki:ERModel

Version 11 (modified by 185022, 5 days ago) ( diff )

--

ЕР Дијаграм

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

Ентитети

ARTICLE - ентитет кој чува податоци за артикли достапни во дистрибуцијата.

  • art_id bigint, примарен клуч
  • art_name string, задолжителен
  • art_image string, задолжителен
  • art_weight int, задолжителен

ARTICLE_UNIT - ентитет кој чува податоци за единки од артикл.

  • unit_id bigint, примарен клуч
  • unit_expiration_date date, задолжителен
  • unit_serial_number string, задолжителен
  • unit_batch_number string, задолжителен
  • unit_manufacture_date date, задолжителен
  • unit_cost_price decimal, задолжителен

CATEGORY - ентитет кој чува податоци за категории на артикли.

  • category_id int, примарен клуч
  • category_name string, задолжителен

CITY - ентитет кој чува податоци за градови.

  • city_id int, примарен клуч
  • city_name string, задолжителен

CUSTOMER - ентитет кој чува податоци за потрошувачи (специјализација од USER).

  • cust_EDB string, задолжителен
  • cust_company_name string, задолжителен
  • cust_address string, задолжителен
  • cust_representative_image string, задолжителен

DELIVERY - ентитет кој чува податоци за достави.

  • del_id bigint, примарен клуч
  • del_date_created date, задолжителен
  • del_date date, задолжителен
  • del_start_km int
  • del_end_km int,
  • del_start_time time,
  • del_end_time time,

DELIVERY_STATUS - ентитет кој чува податоци за можни состојби на достава

  • d_status_id smallint, примарен клуч
  • d_status_name string, задолжителен и уникатен
  • d_status_desc text, задолжителен

DRIVER - ентитет кој ги претставува корисниците - возачи (специјализација од USER).

MANAGER - ентитет кој ги претставува корисниците - менаџери (специјализација од USER).

MANUFACTURER - ентите кој ги претставува произведувачите чии продукти се достапни во дистрибуцијата

  • man_id biging, примарен клуч
  • man_name string, задолжителен
  • man_address string, задолжителен
  • man_mobile string, задолжителен
  • man_email string, задолжителен

ORDERS - ентитет кој чува податоци за нарачки направени од некој потрошувач.

  • ord_id bigint, примарен клуч
  • ord_date date, задолжителен
  • ord_sum int, задолжителен
  • ord_fulfillment_date timestamp,
  • ord_comment text

ORDERS_STATUS - ентитет кој чува податоци за можни состојби на нарачка (енумерација)

  • o_status_id smallint, примарен клуч
  • o_status_name string, задолжителен
  • o_status_desc text, задолжителен

PRICE - ентитет кој чува податоци за цените на секој артикл, за полесно водење на историја на цени

  • price_id int, примарен клуч
  • price decimal, задолжителен
  • price_eff_date timestamp, задолжителен

PRO_FORMA - ентитет кој чува податоци за про-фактури.

  • pf_id bigint, примарен клуч
  • pf_deadline date, задолжителен
  • pf_date_created date, задолжителен

PRO_FORMA_STATUS - ентитет кој чува податоци за можни состојби на про-фактура (енумерација)

  • pf_status_id smallint, примарен клуч
  • pf_status_name string, задолжителен
  • pf_status_desc string, задолжителен

USERS - ентитет кој чува податоци за корисниците.

  • user_id bigint, примарен клуч
  • user_name string, задолжителен
  • user_surname string, задолжителен
  • user_pass string, задолжителен
  • user_salt string, задолжителен
  • user_email string, задолжителен
  • user_active boolean, задолжителен
  • user_mobile string, задолжителен
  • user_image string,
  • clazz_ string, задолжителен, (атрибут специфичен за наследување од ентитет USERS во Spring Boot)

VEHICLE - ентитет кој чува податоци за возила со кои се вршат достави.

  • veh_id int, примарен клуч
  • veh_carry_weight int, задолжителен
  • veh_service_interval smallint, задолжителен
  • veh_kilometers int, задолжителен
  • veh_last_service date,
  • veh_last_service_km int,
  • veh_plate string, задолжителен,
  • veh_vin string, задолжителен и уникатен
  • veh_reg date, задолжителен

WAREHOUSE - ентитет кој чува податоци за магацини на дистрибуцијата.

  • wh_id int, примарен клуч
  • wh_adr string, задолжителен

WEEKDAY - ентитет кој чува податоци за деновите од неделата.

  • day_id smallint, примарен клуч
  • day_name string, задолжителен

TOKEN - ентитет кој чува податоци за кориснички токени.

  • t_id bigint, примарен клуч
  • t_value text, задолжителен
  • t_date timestamp, задолжителен
  • t_type string, задолжителен
  • t_expiry, timestamp
  • t_validated_at, timestamp

Релациски табели

UNIT_PRICE - табела во кои се чуваат примарните клучеви на ARTICLE_UNIT и PRICE. Примарен клуч е композитен клуч од двата примарни клучеви.

CUSTOMER_WEEKDAY - табела во која се чуваат торките CUSTOMER-WEEKDAY.

  • cust_day_id bigint, примарен клуч
  • day_id smallint, задолжителен
  • start_time time, задолжителен
  • end_time time, задолжителен

Релации

art_price - релација помеѓу ARTICLE и PRICE која означува секој артикл која цена ја има моментално и кои цени ги имал до сега. Еден артикл може да има повеќе цени (актуелната цена и сите цени до тогаш), а една цена може да припаѓа на само еден артикл (доколку некој друг артикл има иста цена се прави нов елемент во табелата со иста вредност, примарниот клуч ќе биде различен. Доколку истиот артикл добива цена која претходно ја имал, повторно се прави нов елемент во табелата за да се зачува коректната историја на цена на артиклот. Ова се решава на апликациско ниво).

belongs_to - релација помеѓу WAREHOUSE и VEHICLE која означува дека едно возило припаѓа на некој магацин. Едно возило мора да припаѓа само на еден магацин, а еден магацин може да има 0 или повеќе возила.

creates_order - релација помеѓу CUSTOMER и ORDERS која означува креирање на една нарачка од страна на потрошувач. Еден потрошувач може да има 0 или повеќе нарачки а една нарачка мора да биде направена од еден потрошувач.

delivers - релација помеѓу DELIVERY и VEHICLE која означува кое возило ја врши одредена достава. Една достава мора да биде извршена од едно возило, а едно возило може да има извршено 0 или повеќе достави.

drives - релација помеѓу DRIVER и VEHICLE која означува кој возач одговара и управува со кое возило. Секој возач мора да има едно возило и секое возило мора да биде управувано од еден возач.

d_status - релација помеѓу DELIVERY и ORDER_STATUS која означува една достава во која состојба/статус е. Една достава може да има само еден статус во еден момент, еден статус може да има повеќе достави асоцирани со него.

from_category - релација помеѓу CATEGORY и ARTICLE која означува од која категорија е еден артикл. Еден артикл мора да има една категорија, а една категорија може да има 0 или повеќе артикли асоцирани со неа.

generates - релација помеѓу ORDERS и PRO_FORMA која означува од која нарачка е одредена про-фактура. Една про-фактура мора да биде асоцирана со една нарачка, а една нарачка може да има 0 или 1 про-фактура.

in_stock - релација помеѓу ARTICLE_UNIT и WAREHOUSE која означува една единка од некој артикл во кој магацин се наоѓа. Една единка мора да припаѓа на еден а може и на повеќе магацини, а еден магацин може да има 0 или повеќе единки од некој артикл.

located_in - релација помеѓу CITY и USER која означува од кој град е еден корисник. Еден град може да има 0 или повеќе корисници, а еден корисник мора да биде асоциран со еден град.

manages - релација помеѓу MANAGER и WAREHOUSE која означува кој менаџер управува со одреден магацин. Еден менаџер мора да управува само со 1 магацин и 1 магацин мора да биде управуван од само 1 менаџер.

manufac_by - релација помеѓу MANUFACTURER и ARTICLE која означува кој артикл од кој произведувач е произведен. Еден артикл може да биде произведен од еден произведувач, а еден произведувач може да има произведено повеќе артикли.

order_contains - релација помеѓу ORDERS и ARTICLE_UNIT која означува една нарачка кои единки од некој артикл ги содржи. Една нарачка мора да има барем 1 единка од некој артикл, а една единка од артикл може да биде асоцирана само со 1 нарачка.

o_status - релација помеѓу ORDERS и ORDER_STATUS која означува една нарачка во која состојба/статус е. Една нарачка може да има само еден статус во еден момент, еден статус може да има повеќе нарачки асоцирани со него.

pf_status - релација помеѓу PRO_FORMA и PRO_FORMA_STATUS која означува една про-фактура во која состојба/статус е. Една про-фактура може да има само еден статус во еден момент, еден статус може да има повеќе про-фактури асоцирани со него.

shipping - релација помеѓу ORDERS и DELIVERY која означува која нарачка со која достава ќе се достави. Една нарачка мора да припаѓа на само една достава, а една достава мора да има барем 1 нарачка.

warehouse_location - релација помеѓу WAREHOUSE и CITY која означува во кој град се наоѓа еден магацин. Во еден град може да има 1 или повеќе магацини, а еден магацин мора да биде од само 1 град.

ver_token - релација помеѓу USERS и TOKEN која ги поврзува корисниците со нивните креирани токени. Еден корисник може да има повеќе токени и еден токен може да е асоциран само со еден корисник.

reg_cities - релација помеѓу CITY и REGION која означува кои градови припаѓаат на одреден регион. Еден регион може да има повеќе градови и еден град може да припаѓа само во еден регион;

work_days - релација помеѓу WEEKDAY и CUSTOMER која ги поврзува деновите од неделата со еден купувач. Ова е со цел да се знае во кои денови и периоди купувачот може да прима дотур на роба. Релацијата има 2 атрибути - start_time и end_time. Еден купувач може да прима роба повеќе денови од неделата и во еден ден може да бидат повеќе купувачи отворени за примање дотур на роба.

unit_price - релација помеѓу ARTICLE_UNIT и PRICE. Ова ги поврзува единките артикл со одредена цена. Една единка може да има само една цена, а една цена може да биде назначена на повеќе единки артикли.

Историјат

Верзија 7 - актуелна

DistributorApp_DB_Scheme_ver7.png
Промени во однос на Верзија 6:

  • Додавање на атрибути и промена на некои постоечки имиња на атрибути.

Верзија

DistributorApp_DB_Scheme_ver6.png
Промени во однос на Верзија 5:

  • Додадени се некои атрибути и релацијата помеѓу USERS и TOKEN е променета со тоа што сега еден корисник може да има повеќе од 1 токен. Ова е затоа што има два вида на токени - токен за валидација на корисничкиот профил и токен за промена на лозинка.

Верзија 5

DistributorApp_DB_Scheme_ver5.png
Промени во однос на Верзија 4:

  • Додадени се ентитетите REGION, WEEKDAY, TOKEN.
  • Промена на релациите помеѓу ARTICLE, PRICE и ARTICLE_UNIT со тоа што сега нема директна релација помеѓу ARTICLE и ARTICLE_UNIT туку индиректно се поврзани преку ентитетот PRICE. Ова е за да се постигне разновидност на цени за различни единки од еден артикл.

Верзија 4

DistributorApp_DB_Scheme_ver4.png
Промени во однос на Верзија 3:

  • Додадени се ентитетите MANUFACTURER и PRICE.
  • Додадени се потребни атрибути на некои од ентитетите кои претходно недостасуваа а се важни за функционалноста на апликацијата.
  • Исто така променети се имињата на атрибутите, да бидат пократки а сепак разбирливи и уникатни да нема конфузија при работа со базата.

Верзија 3

DistributorApp_DB_Scheme_ver3.png
Промени во однос на Верзија 2:

  • Енумерациите 'status' за DELIVERY, ORDERS и PRO_FORMA се направени ентитети со потребни релации помеѓу соодветните ентитети.
  • Променета кардиналност на релацијата помеѓу WAREHOUSE и ARTICLE_UNIT
  • Променет тип на учество на релацијата помеѓу ORDERS и DELIVERY
  • Додадени соодветни атрибути на новите ентитети и додадени атрибути user_image, vehicle_last_service

Верзија 2

DistributorApp_DB_Scheme_ver2.png
Промени во однос на Верзија 1:

  • Додаден е ентитет - ARTICLE_UNIT
  • Додадени се сите потребни атрибути

Верзија 1

DistributorApp_DB_Scheme_ver1.png

Attachments (7)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.