Projekt bazy danych banku.

0

Witam. Myślę nad przemodelowaniem bazy swojego projektu. We wstępnych założeniach wyglądała tak: <image>iBankDB.png</image>

Mamy trzy typy kont oszczędnościowe, osobiste i lokata. To co mi się najbardziej nie podobało w bazie to fakt, że w tabeli usersAccounts są trzy klucze obce do każdego z trzech typów kont i w zależności jaki jest typ konta to dwa są nullem a jedno posiada id. Nie wydaje mi się to najlepszym podejściem. Więc postanowiłem to trochę przemodelować i wymyśliłem coś takiego: <image>OracleDB.png</image>

Jednak i to rozwiązanie nie do końca mi odpowiada, dodałem trzy tabele savingAccounts, investmentAccounts, personalAccounts, ale w sumie wydaje mi się, że baza się nadmiernie poprzez takie rozbicie rozrosłą i nie jest to potrzebne, ponieważ te tabele zawierają tylko typ konta i odwołanie do tabeli usersAccounts.

Miałem jeszcze trzeci pomysł, żeby usunąć tabelę usersAccounts i pola poprzenosić do tabel savingAccounts, investmentAccounts, personalAccounts, ale wtedy robi mi się problem z tabelą transfers, w której zapisuję transakcje. Wtedy musiałaby ona zamiast zawierać dwóch pól do usersAccounts, sześć pól, po dwa dla każdej z trzech tabel: savingAccounts, investmentAccounts, personalAccounts. W tabeli transfers zapisuję wszystko np. wypłatę z lokaty, wpłatę na lokatę, przelew z konta osobistego na osobiste lub oszczędnościowe i w druga stronę i nie dałoby się takie rozszerzenia transfers obejść.

Może ktoś doradziłby mi jakie byłoby najlepsze rozwiązanie takie bazy danych? Może, któreś z powyższych jest ok? Proszę o porady.

0

Radzę nie używać typów zmiennoprzecinkowych jako reprezentację pieniędzy.
Po więcej zapraszam tutaj: http://stackoverflow.com/questions/3730019/why-not-use-double-or-float-to-represent-currency

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