Changes between Version 4 and Version 5 of DatabaseProgramming


Ignore:
Timestamp:
06/09/26 16:13:50 (7 days ago)
Author:
231046
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseProgramming

    v4 v5  
    11== DatabaseProgramming ==
    22Во оваа фаза се изработени функции, процедури и тригери за основните операции потребни за правилно функционирање на системот.
     3
    34== Функции и процедури ==
    4 1. {{{approve_inventory_transaction}}} - За дадена трансакција ги процесира сите нејзини movements, т.е. ако има movements кои се уште не се одобрени, ги извршува и го става нивниот статус на approved. Доколку има source bin (од кој вадиме роба) - се ажурира INVENTORY за да се намали количината, а доколку има destination bin (во кој пристигнува роба) - се ажурира INVENTORY за да се внесе робата која пристигнала.
    55
    6 2. {{{cancel_pending_transaction}}} - Ја откажува дадената трансакција и ги ослободува сите резервации кои биле направени кога таа била креирана.
     61. {{{approve_inventory_transaction}}} - За дадена трансакција ги извршува сите нејзини movements (ако има movements кои се уште не се одобрени или откажани, односно accepted_by = NULL). Под извршување се подразбира: Доколку има source bin (од кој вадиме роба) - се ажурира INVENTORY за тој bin да се намали количината, а доколку има destination bin (во кој пристигнува роба) - се ажурира INVENTORY за тој bin за да се внесе робата која пристигнала. Става вредност на accepted_by на id-то на вработениот кој ја одобрил. Ова е втора фаза на финализирање на трансакциите, која настапува по нивно креирање со една од функциите под точка 3.
    77
    8 3. {{{receive_delivery}}} - Креира pending delivery трансакција од робата која е добиена од доставувач. Враќа BIGINT - transaction_id.
     82. {{{cancel_pending_transaction}}} - Ја откажува дадената трансакција (само доколку уште не е одобрена): ги ослободува сите резервации кои биле направени кога таа била креирана и ја става вредноста на accepted_by = -1, односно на сентинел вредност за да знаеме дека трансакцијата е откажана. Мора да внесеме employee со id = -1 кој ќе го користиме за оваа логика.
    99
    10 4. {{{ship_stock}}} - Креира pending shipment трансакција со робата која треба да се испрати. Бидејќи зема роба од source bin, ја резервира таа роба, за да не се испрати на друго место додека оваа трансакција чека да биде одобрена. Враќа BIGINT - transaction_id.
     103. Функции за креирање/ажурирање на трансакција:
    1111
    12 5. {{{transfer_stock}}} - Креира pending внатрешна трансакција - за преместување на роба од еден во друг bin во рамките на нашиот магацин. Исто како ship_stock, ја резервира таа роба.
     12   3а. {{{receive_delivery}}} - Креира delivery трансакција во INVENTORY_TRANSACTIONS со робата која е добиена од доставувач. Враќа BIGINT - transaction_id. Ја Става вредноста на accepted_by на null.
    1313
    14 6. {{{adjust_inventory}}} - Креира pending трансакција за промена на количина на роба. Го користи помошниот тип adjustment_item, кој ја има променливата quantity_change (позитивни вредности додаваат, а негативни одземаат роба). Враќа BIGINT - transaction_id.
     14   3б. {{{ship_stock}}} - Креира pending shipment трансакција со робата која треба да се испрати. Бидејќи зема роба од source bin, ја резервира таа роба, за да не се испрати на друго место додека оваа трансакција чека да биде одобрена. Враќа BIGINT - transaction_id. Ја Става вредноста на accepted_by на null.
    1515
    16 7. {{{create_product}}} - Креира продукт со име и опис и го внесува во табелата PRODUCTS.
    1716
    18 8. {{{update_product}}} - Ажурира продукт - го наоѓа преку id и ги менува името и описот, и ја ажурира табелата PRODUCTS.
     17   3в. {{{transfer_stock}}} - Креира pending внатрешна трансакција - за преместување на роба од еден во друг bin во рамките на нашиот магацин. Исто како ship_stock, ја резервира таа роба. Ја Става вредноста на accepted_by на null.
    1918
    20 9. {{{create_category}}} - Креира категорија за продукти - внимавајќи дали е таа подкатегорија со променливата parent_id која го дава id-то на родителот на категоријата (доколку го има; доколку не тоа е null). Ја додава категоријата во табелата CATEGORIES.
    2119
    22 10. {{{update_category}}} - Ажурира категорија во табелата CATEGORIES.
     20   3г. {{{adjust_inventory}}} - Креира pending трансакција за рачна промена на количина на роба. Го користи помошниот тип adjustment_item, кој ја има променливата quantity_change (позитивни вредности на оваа променлива додаваат, а негативни одземаат роба). Враќа BIGINT - transaction_id.
    2321
    24 11. {{{assign_product_category}}} - Задава категорија на продукт - во табелата PRODUCT_CATEGORIES го внесува product_id и името на категоријата.
     224. {{{create_product}}} - Креира продукт со име и опис и го внесува во табелата PRODUCTS.
    2523
    26 12. {{{remove_product_category}}} - Ја брише дадената категорија на продуктот - го брише редот од табелата PRODUCT_CATEGORIES каде што е зададена таа категорија за тој продукт.
     245. {{{update_product}}} - Ажурира продукт - го наоѓа преку id и ги менува името и описот, и ја ажурира табелата PRODUCTS.
     25
     266. {{{create_category}}} - Креира категорија за продукти - внимавајќи дали е таа подкатегорија со променливата parent_id која го дава id-то на родителот на категоријата (доколку го има; доколку не тоа е null). Ја додава категоријата во табелата CATEGORIES.
     27
     287. {{{update_category}}} - Ажурира категорија во табелата CATEGORIES.
     29
     308. {{{assign_product_category}}} - Задава категорија на продукт - во табелата PRODUCT_CATEGORIES го внесува product_id и името на категоријата.
     31
     329. {{{remove_product_category}}} - Ја брише дадената категорија на продуктот - го брише редот од табелата PRODUCT_CATEGORIES каде што е зададена таа категорија за тој продукт.
    2733
    283413. {{{create_attribute}}} - Креира атрибут и го внесува во табелата ATTRIBUTES