
Po co mi to wszystko, jak ja mam pomysła, który pozbala na łatwy intuicyiny dostęp do rekordów z zachowaniem relacji:
Przykrywamy wszystko jednym interfejsem, abstraktem, który udostępnia następujące elementy:
I. Dwie podstawowe metody:
a: odbieranie danych z bazy
b: wysyłanie danych , rekordów do bazy.
II. Wirtualne, zcachowane tabele. Tzn. klasy dla tabel, którym strukture nadajemy wstawiając do nich dane. Struktura ich ma w jakiś sposób odpowiadać wycinką struktury tabel w bazie danych, czyli interesującym kolumnom i ich właścwością. Dane do rekordów w tabeli możemy wstawiać ze strony klienta, lub żądać ich od bazy danych przez zarządanie kolumn i warunków. Wcale nie takie skomplikowane, jak się wydaje.
Zasada:
Operuje sie na wirtualnych rekordach, w wirtualnych tabelach.
Kiedy dane są gotowe do wyslania, albo warunki wstawione, a wszystko wykonjemy metodami wrtualnej bazy i wirtualnych tabel, w szczególnych rządaniach nawet wirtualnych rekordów, więc kiedy dane są, wukonujemy tylko pobierz lub wyślij.
Pod tym interfejsem jest warstwa przetwarzająca wszystkie zmiany na kwarende- taką warstwę pisze, nie wymaga XML ani wcześniejszej kompilacji bo tworzy kwarende na podstawie wirtualnej struktury tabel bazy danych. Ba taka warstwa bez problemu kuma relacje, a przy żądańu danych od bazy zwraca dowolne tabele.
W ten sposób, możemy operować na danych jak na jednej wielkiej zagnieżdżonej tabeli, która moż ale nie musi być cachowana przez całą sesje. Moęmy też działać na kolumnach, wierszach, wycinkach, połączonym wycinku z relacyjnych tabel lb pojedyńczych rekordach. W związku z tym jest kontrla co się znajduje w RAM'ie.
Błędy:
Jeśli znamy strukture tabel to innych błędów być ie może. A jeśli wyślemy do bazy na serwerze rekord z nieistniejącej columny, to poprostu dostajemy z powrotem kod błędu.
Zna ktoś moźe podobne rozwiązanie, jak tak to bardzo mi się to przyda, bo wogóle nie rozumiem dlaczego miałbym używać Propela z XML i Generatorem klass, skoro moge mieć prosty dostęp do danych i struktury z poziomu skryptu, in-time. Jeśli nie ma takiego rozwiązania, to sie zrobi, samemu, lub w zespole, ktoś zainteresowany? Dzięki za czytanie.