wiki:DatabaseProgramming

Version 7 (modified by 231014, 5 days ago) ( diff )

--

DatabaseProgramming

Во оваа фаза се изработени функции, процедури и тригери за основните операции потребни за правилно функционирање на системот.

Функции и процедури

  1. approve_inventory_transaction -

Тип: Процедура Ја одобрува трансакцијата во што е во состојба PENDING и ги извршува сите поврзани inventory movements. Резервираната роба се троши од изворните bins, количините се ажурираат, залихата во дестинацијата се зголемува, а статусот на трансакцијата се менува во APPROVED.

  1. cancel_pending_transaction -

Тип: Процедура Ја поништува трансакцијата што е во чекање и ја ослободува резервираната роба создадена при креирање на трансакцијата. Статусот се менува во CANCELLED, а деталите за поништување се запишуваат во белешките на трансакцијата.

  1. Функции за креирање/ажурирање на трансакција:

а. receive_delivery -

Тип: Функција Креира delivery трансакција во INVENTORY_TRANSACTIONS со робата која е добиена од доставувач. Враќа BIGINT - transaction_id. Ја Става вредноста на accepted_by на null.

б. ship_stock -

Тип: Функција Креира pending shipment трансакција со робата која треба да се испрати. Бидејќи зема роба од source bin, ја резервира таа роба, за да не се испрати на друго место додека оваа трансакција чека да биде одобрена. Враќа BIGINT - transaction_id. Ја Става вредноста на accepted_by на null.

в. transfer_stock -

Тип: Функција Креира pending внатрешна трансакција - за преместување на роба од еден во друг bin во рамките на нашите магацини. Исто како ship_stock, ја резервира таа роба. Ја Става вредноста на accepted_by на null.

г. adjust_inventory -

Тип: Функција Креира pending трансакција за рачна промена на количина на роба. Го користи помошниот тип adjustment_item, кој ја има променливата quantity_change (позитивни вредности на оваа променлива додаваат, а негативни одземаат роба). Враќа BIGINT - transaction_id.

  1. create_product -

Тип: Функција Креира продукт со име и опис и го внесува во табелата PRODUCTS.

  1. update_product -

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

  1. create_category -

Тип: Функција Креира категорија за продукти - по потреба ја поврзува со родителска категорија.

  1. update_category -

Тип: Функција Го ажурира името или родителската категорија на постоечка категорија. Се користи за одржување на хиерархијата на категории.

  1. assign_product_category -

Тип: Функција Задава категорија на продукт - овозможувајќи организирање и класификација во каталогот.

  1. remove_product_category -

Тип: Функција Ја отстранува врската помеѓу производ и категорија, се користи при рекласификација.

  1. create_attribute -

Тип: Функција Креира дефиниција за атрибут на производ (на пр. боја, големина, тежина)

  1. add_attribute_value -

Тип: Функција Додава вредност за дадениот атрибут.

  1. create_product_variant -

Тип: Функција Креира варијанта на даден продукт. Враќа ID на новата варијанта.

  1. update_product_variant -

Тип: Процедура Ажурира постоечка варијанта на продукт.

  1. assign_variant_attribute - Дава атрибут на одредена варијанта на продукт и внесува во VARIANT_ATTRIBUTES.
  1. remove_variant_attribute - Брише атрибут на одредена варијанта од табелата VARIANT_ATTRIBUTES.

Функции за WAREHOUSE структурата

  1. create_warehouse - Креира warehouse и го внесува во табелата WAREHOUSES.
  1. update_warehouse - Ажурира warehouse во табелата WAREHOUSES.
  1. create_section - Креира оддел за warehouse со p_warehouse_id и го внесува во табелата SECTIONS.
  1. update_section - Ажурира оддел во табелата SECTIONS.
  1. create_location - Креира локација и ја внесува во табелата LOCATIONS.
  1. update_location - Ажурира локација во табелата LOCATIONS.
  1. create_bin - Креира bin и го внесува во табелата BINS.
  1. update_bin - Ажурира bin во табелата BINS.
  1. hire_employee - Внесува вработен со сите потребни податоци во табелата EMPLOYEES и го враќа неговиот id.
  1. update_employee - Ажурира вработен во табелата EMPLOYEES.
  1. terminate_employee - Отпушта вработен, т.е. го ажурира статусот на вработениот во 'TERMINATED' и ја става вредноста на сегашен timestamp во променливата terminated_at - во табелата EMPLOYEES.
  1. assign_employee_to_warehouse - Внесува задача, т.е. id на вработен и id на warehouse во табелата EMPLOYEE_WAREHOUSE_ASSIGNMENTS, како и почетен и краен датум кога почнал вработениот да работи на оваа задача и boolean вредност - дали ова му е примарна задача или не. Го враќа id на задачата.
  1. end_warehouse_assignment - Го внесува денешниот датум како краен датум во end_date во задачата со id p_assignment_id во табелата EMPLOYEE_WAREHOUSE_ASSIGNMENTS.
  1. assign_role_to_employee - Додава улога со p_role_id на дадениот вработен, и ги внесува двете id во ROLES_EMPLOYEES.
  1. remove_role_from_employee - Ги брише редовите од табелата ROLES_EMPLOYEES каде id-ата се совпаѓаат со дадените.
  1. assign_permission_to_role - Додава пермисија за дадената улога, и ги внесува permissions_id и roles_id во табелата PERMISSIONS_ROLES.
  1. remove_permission_from_role - Ги брише пермисиите за дадена улога од табелата PERMISSIONS_ROLES.

Тригери

update_timestamp - Тригер функција што овозможува да кој се повикува автоматски при ажурирање на некоја табела, се стави CURRENT_TIMESTAMP како вредност во updated_at во новиот ред, со цел да се сочува времето на правење на ажурирањата во табелата. Се повикува како тригер автоматски пред ажурирање на некоја од следниве табели:

  • PRODUCTS - trg_products_updated_at
  • EMPLOYEES - trg_employees_updated_at
  • EMPLOYEE_WAREHOUSE_ASSIGNMENTS - trg_employee_warehouse_assignments_updated_at
  • ROLES - trg_roles_updated_at
  • PERMISSIONS - trg_permissions_updated_at
Note: See TracWiki for help on using the wiki.