Oprocentowanie lokat bankowych - zapis do bazy SQL

0

Witam, mam taki oto problem.
Chciałbym zapisać do bazy konfigurację lokaty bankowej. Za bardzo nie znam się na finansach więc nie wiem nawet co może się z tym wiązać dla tego proszę szanownych forumowiczów o pomoc.

//**Klasa lokata**
unit Lokata;

//jej właściwości
//ID lokaty zapisane w bazie (kol w tabeli: INTEGER  PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE)
property Id : Integer read ...
//nazwa lokaty
property Nazwa : string read ...
//kwota na lokacie
property Kwota : Double read ...
//data rozpoczęcia lokaty
property DataRozpoczecia : TDateTime ...
//czas trwania lokaty w miesiącach
property IloscMiesiecy : Word read ...
//id Harmonogramu lokaty - klucz obcy z innej tabeli
property IdHarmonogramLokaty : Integer read ...

property SzacowanyCzasZakończenia : Integer read-only ...
property SzacowanaKwotaKoncowa : Double read-only ...

I problem pojawia się przy tej ostatniej właściwości IdHarmonogramLokaty (niebędącej read-only).
Wyjaśnię to na podstawie przykładu.
Mama jakąś lokatę (kwotę pieniędzy), która leży sobie na koncie w BankuX, który ma jakiś harmonogram lokaty bankowej (nazwany np. Lokata BankX 12M 5%).
Za harmonogram lokaty bankowej (jeżeli znacie jakąś lepszą nazwę to bardzo proszę o podpowiedź) rozumiem to: lokata na 12m-cy, oprocentowanie stałe w skali roku równe 5%.
I taki harmonogram lokaty bankowej chcę zapisać do bazy, możliwość edycji też przyda się (ale to da się załatwić).
Do tego moja klasa Lokata ma dwie dodatkowe automatycznie wyliczane właściwości SzacowanyCzasZakonczenia i SzacowanaKwotaKoncowa. Czas nie jest problemem, da się go policzyć po dacie rozpoczęcia i czasie lokaty.
Natomiast szacowana kwota końcowa chciałbym aby wyliczała się sama na podstawie harmonogramu lokaty bankowej.
Stąd mam IdHarmonogramLokaty na podstawie którego chciałbym pobrać harmonogram lokaty bankowej i na jego właściwościach wyliczyć kwotę końcową.
Jak zacząłem szukać różne oferty lokat oferowane przez banki to powiem szczerze zniechęciłem się już po 3 pierwszych bankach. Cała ta ich terminologia ....... ble.
Proszę zatem o pomoc w następujących kwestiach:

  • Na co należy zwracać uwagę przy projektowaniu klasy harmonogram lokaty bankowej THarmonogramLokatyBankowej
  • Jak zaprojektować bazę danych
  • Wskazówki do klasy harmonogram, co powinna zawierać
    Chciałbym aby klasa i baza obsługiwały wszystkie możliwe lokaty oraz uwzględniała wszystkie dodatkowe rzeczy związane z lokatami bankowymi (tak zwane gwiazdki napisane gdzieś drobnym drukiem przy podpisywaniu lokat itp).
    Pozdrawiam i dziękuję za wszelkie użyteczne odpowiedzi
0

to się robi trochę inaczej

  • zbierasz dokładne info o świeci, który masz zamodelować, tutaj o bankowości i lokatach
  • zamieniasz świat rzeczywisty na modele, które mają pokrywać jak najwięcej (najlepiej wszystkie) przypadki, jakie występują w świecie rzeczywistym
  • generujesz szablony klas oraz tabele, klucze, indeksy itd., itp...
  • piszesz program.
    Ty zabrałeś się od d**y strony - chcesz napisać program nie mając zielonego pojęcia co on ma robić - to se ne da
0

Właśnie po to napisałem ten posta na forum żeby mi ktoś pomógł
Nie znam się na lokatach

Ja z tego co zrozumiałem i wyczytałem na stronach banków zrobiłem taki model:

unit HarmonogramLokatyBankowej;

interface

 uses SysUtils, Generics.Collections, Generics.Defaults;

 type
  THarmonogramLokatyBankowej = class
  private
    fId : Integer;
    fNazwa : string;
    fCzasLokaty : Word;
    fOprocentowanieStaleWCalymOkresieLokaty : Boolean;
    fOprocentowanieWSkaliRoku : Double;
    fOprocentowanieWPoszczegolnychMiesiacach : TDictionary<Word, Double>;
  public
    property Id : Integer read fId write fId;
    property Nazwa : string read fNazwa write fNazwa;
    property CzasLokaty : Word read fCzasLokaty write fCzasLokaty;
    property OprocentowanieStaleWCalymOkresieLokaty : Boolean read fOprocentowanieStaleWCalymOkresieLokaty write fOprocentowanieStaleWCalymOkresieLokaty;
    property OprocentowanieWSkaliRoku : Double read fOprocentowanieWSkaliRoku write fOprocentowanieWSkaliRoku;
    property OprocentowanieWPoszczegolnychMiesiacach : TDictionary<Word, Double> read fOprocentowanieWPoszczegolnychMiesiacach;

    destructor Destroy(); override;
    constructor Create();
  end;

implementation

constructor THarmonogramLokatyBankowej.Create();
begin
    inherited Create();

    Self.fOprocentowanieWPoszczegolnychMiesiacach := TDictionary<Word, Double>.Create();
end;

destructor THarmonogramLokatyBankowej.Destroy();
begin
    Self.fOprocentowanieWPoszczegolnychMiesiacach.Clear();
    Self.fOprocentowanieWPoszczegolnychMiesiacach.Free();

    inherited Destroy();
end;

end.

Ale nie wiem czy uwzględnia wszystko, czy jest uniwersalny.
Dla tego chciałem prosić o sugestie a nie jak mam się za to zabrać.
Nie wiem co należy brać pod uwagę projektując klasę a nie chciałbym jej zmieniać 100 razy bo potem okaże się że nie ma tego i owego.
Poczytam jeszcze o lokatach i będę modelował dalej.
Gdyby jednak ktoś zechciał pomóc, coś zasugerować będę wdzięczny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1