Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]pomysł na moduł z lokalnym cachem
Forum PHP.pl > Forum > PHP > Object-oriented programming
php1983
Potrzebny jest model, na początek chociarz do MySql, elastyczny i funkcjonalny. Zainspirowal mnie Propel, tylko wymaga on szablonów XML do każdej tabeli i "komipilacji" wstydnis.gif dla każdej bazy. Pozatym przy zmianie w struktórze tabeli, trzeba zminic szblony i rekompilować clasy.

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.
TrevorGryffits
Hmm... A Doctrine?
Sedziwoj
@php1983
Jak nie rozumiesz dlaczego, to przykro mi, rozumiem że ktoś rozumie założenia Propela i Doctrine i wybiera jedno z nich (ja Propel), ale jak ktoś nie rozumie dlaczego tak jest robione...
Ale niektórym podpowiadanie składnie, operacje na interfejsach klas (niezależnie od tego, czy zmieni się nazwa kolumny/tabeli), pewien poziom bezpieczeństwa, nie jest potrzebne, to jego sprawa. Projekt się powinno tworzyć, dokumentować i dopiero wdrążać, wtedy nie ma ciągłych zmian w strukturze bazy, a jak są to i tak trzeba to porządnie zrobić. Ale każdy pracuje jak mu się podoba...
php1983
Teraz sprawdzam Doctrine, to mi się podoba, jak narazie jest dobrze!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.