Witam, mam do rozgryzienia jeden problem związny z płatnościami oraz rozliczeniami. Występuje dwóch aktorów, Klient i Opiekun. Z każdym z nich jest podpisywana umowa, z klientem roczna, z opiekunem różnie (albo na rok, albo na konkretne zlecenie). Zlecenie jest powiązane z umową klienta i opiekuna. Na podstawie zlecenia rozliczany jest klient (faktura co 2 tyg, lub raz na koniec miesiąca lub z końcem zlecenia), opiekun rozliczany jest za cały miesiąc.
To jeszcze jest do ogarnięcia.
W każdej dowolnej sytuacji, zarówno klient jak i opiekun, może być dodatkowo obciążony jakimś kosztem, lub może mieć upust/zwrot. Także w między czasie może dojść do zmiany wysokości dziennego obciążenienia (klient), lub dziennego wynagrodzenia (opiekuna). Dodatkowym obiciążeniem może być np.: rozwiązanie umowy czy to Klientem czy Opiekunem.
Problem polega na tym, że nie bardzo mogę uporać się z samą koncepcją bazy. Aktualnie mam to rozwiązane jako tabele
Contract_Contractor (umowa klint),
Contract_Guardian (umowa opiekun),
Service (zlecenie)
Service_Day (dodatkowe koszty naliczane klientowi/opikunowi na podstawie zlecenia)
Service_Day jest miejscem gdzie przechowuje dodatkowe zmiany typu (doliczenie wartości, upust, etc) per dzień lub zakres dni. Dzięki temu mogę regulować wartości w finalnym rozliczeniu i dodatkowo wyświetlam to na kalendarzu rozliczeń.
Chwilowo nie mogę rozwiązać problemu ze zmianą stawki zleceń w trakcie jej trwania oraz dodatkowym doliczanie wartości z tytułu rozwiązania umowy, które defakto nie są bezpośrednio związane ze zleceniem.
Macie może pomysł, jak taki problem rozwiązać - lub przeorganizować dane w bazie danych?
Na myśl, przychodzi mi dodatowa tabela (kótra miała by informację, że opłata została doliczona do danego rozliczenia).
Z góry dziękuję za jakieś sugestie.