Odwieczny problem, który nigdy nie został elegancko rozwiązany.
Wszystkie pakiety bankowe, z którymi pracowałem, przechowują saldo w jednostce konta. Obliczenie go na bieżąco z historii ruchu jest nie do pomyślenia.
Właściwy sposób to:
- Tabela ruchu zawiera transakcję „bilansu otwarcia” dla każdego konta. Będziesz tego potrzebować za kilka lat, kiedy będziesz musiał przenieść stare ruchy z tabeli aktywnych ruchów do tabeli historii.
- Eencja konta ma pole salda
- W tabeli ruchu znajduje się wyzwalacz, który aktualizuje salda kont uznanych i obciążonych. Oczywiście ma kontrolę nad zaangażowaniem. Jeśli nie możesz mieć wyzwalacza, musi istnieć unikalny moduł, który zapisuje ruchy pod kontrolą zobowiązań
- Masz program „sieci bezpieczeństwa”, który możesz uruchomić w trybie offline, który ponownie oblicza wszystkie salda i wyświetla (i opcjonalnie koryguje) salda błędne. Jest to bardzo przydatne w testowaniu.
Niektóre systemy przechowują wszystkie ruchy jako liczby dodatnie i wyrażają kredyt/debet przez odwrócenie pól z/do lub za pomocą flagi. Osobiście wolę pole kredytowe, pole debetowe i podpisaną kwotę, co znacznie ułatwia śledzenie cofnięć.
Zauważ, że te metody dotyczą zarówno gotówki, jak i papierów wartościowych.
Transakcje papierami wartościowymi mogą być znacznie trudniejsze, szczególnie w przypadku działań korporacyjnych, będziesz musiał uwzględnić pojedynczą transakcję, która aktualizuje salda jednego lub więcej kupujących i sprzedających, ich salda pozycji bezpieczeństwa i ewentualnie brokera/depozytariusza.