wiki:View1

Целосен преглед на трансакции

Опис

Овој поглед обезбедува целосен преглед на трансакциите, комбинирајќи податоци од повеќе табели во еден приказ

Погледот е наменет за:

  • прикажување трансакции во кориснички интерфејс
  • извештаи
  • аналитички пребарувања

Табели опфатени со погледот

  • transaction
  • transaction_breakdown
  • transaction_account
  • tag
  • tag_assigned_to_transaction

SQL код

CREATE OR REPLACE VIEW vw_transaction_overview AS
SELECT
    t.transaction_id,
    t.transaction_name,
    t.date,
    t.net_amount,

    ta.transaction_account_id,
    ta.account_name,

    STRING_AGG(DISTINCT tg.tag_name, ', ') AS tags

FROM transaction t
JOIN transaction_breakdown tb
    ON tb.transaction_id = t.transaction_id
JOIN transaction_account ta
    ON ta.transaction_account_id = tb.transaction_account_id
LEFT JOIN tag_assigned_to_transaction tat
    ON tat.transaction_id = t.transaction_id
LEFT JOIN tag tg
    ON tg.tag_id = tat.tag_id

GROUP BY
    t.transaction_id,
    t.transaction_name,
    t.date,
    t.net_amount,
    ta.transaction_account_id,
    ta.account_name;

Објаснување на логиката

  • Се комбинираат основните податоци за трансакцијата
  • Се прикажува сметката на која трансакцијата влијае
  • Таговите се агрегираат во една текстуална колона со STRING_AGG
  • LEFT JOIN се користи за тагови бидејќи тие се опционални

Причина за користење

Овој поглед е неопходен бидејќи:

  • ја централизира логиката за читање на трансакции
  • ја намалува комплексноста во апликацијата
  • обезбедува конзистентен формат за приказ на податоци

Без ваков поглед, секој извештај би морал повторно да ги имплементира истите JOIN-ови

Last modified 2 days ago Last modified on 01/04/26 22:03:44
Note: See TracWiki for help on using the wiki.