Cześć Wam,
Mam pytanie nie tyle dotyczące samego języka ale problemu logicznego — algorytmicznego.
Mam program zapisujący różnego rodzaju grafiki pracy - stanowiska itp dane i na podstawie tego wyświetla tabele obsady stanowisk, schematy grafików mogą być modyfikowane z poziomu samego programu i zaawansowanych w dostępie użytkowników.
Problem pojawia się gdy zapisane schematy grafików lub innych struktur danych ulegną zmianie w czasie. Wówczas nie można odtworzyć np dyżurów z przed zmiany ich struktury. Np z przed 5 lat. A mogą to być dane potrzebne nie mogą to być też dane wprost zapisane w tabele bo na podstawie innych schematów obliczane są dane pochodne.
Kłopot w tym że zmiany schematu ich zapisu są już inne po czasie (bo ktoś je zmienił- np stanowisko zniknęło lub jest inne)i program nie może prawidłowo (bez np dziur) przedstawić kto pracował w wigilie 4 lata temu i co robił na jakim stanowisku pracy.
Żeby ten problem w przyszłości ominąć przyszedł mi do głowy pomysł tworzenia plików archiwalnych schematów grafików pracy.
Wszystkie schematy wszystkich grafików znajdują się w jednym ttreeview w pliku txt.
I sposób miałby wyglądać tak , że przy każdej zmianie tego pliku tworzony byłby plik archiwalny O nazwie arch_data-data.txt Gdzie data-data to zakres czasu gdy dany schemat obowiązywał.
Wtedy program zawsze mógłby sprawdzić jak wyglądał schemat i prawidłowo odczytać tabele obsady stanowisk pracy, czasów itd.
Czy pomysł ten wydaje się wam sensowny?
Programuję od dawna ale hobbistycznie, dlatego może wyważam otwarte drzwi. wydaje mi się jednak to dość proste do osiągnięcia. Co myślicie?
Jeśli program nie będzie miał możliwości powrotu do starej wersji wyglądu I organizacji poszczególnych grafików stanie się mało funkcjonalny dla szeregowego pracownika.
Poza tym program nie odnajdzie Np w umowach poszczególnych osób z danego okresu np ich stawek i nie będzie można łatwo obliczyć wynagrodzeń za prace np jakie było 4-5 lat temu. Nie zrobi tego gdyż w tabeli grafiku całościowego będą mogły być prawidłowo zinterpretowane dane odnoszące się do obecnego grafiku a nie z przed x lat.
Program ma być jak najmniej zamknięty w schematach gromadzenia danych bo te ulegają dość dużym zmianom(schematy).
Obecnie mój stary program(Działa od 7 lat) jest niestety mało otwarty i każda zmiana schematu powoduje brak możliwości poprawnych obliczeń części danych - Pozwala jedynie na wyświetlenie danych które pasują do schematu aktualnego , nie pasujące są pomijane lub ustawiam znak „?” Np w miejscu gdzie ktoś przepracował X godzin na stanowisku „?”- które już nie istnieje. A np gdy grafik dyżurów się otworzy do edycji ( np z roku 2018) w sytuacji gdy jeden pion wtedy istniał a obecnie nie ,to nie zostanie on wyświetlony bo program nie ma gdzie sprawdzić do jakiego grafiku jest przypisana zapisana w tabeli dana.
Zapisanie w tabeli grafiku całościowego danej w sposób bezwzględny wydaje się również bezużyteczne bo nazwy poszczególnych pionów stanowisk również ulegają zmianie z czasem.