Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nietypowy koszyk zakupów oparty o tabele tymczasowe, Czy pomysł jest dobry?
Niktoś
post
Post #1





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Witam chciałbym się spytać o Waszą opinię.Buduje koszyk już mam ,praktycznie zbudowany,wyliczanie sum itp.
Teraz kombinuje jak zapisać te dane,zastanawiam się nad tym z dobry tydzień i nie wiem czy dobrze kombinuje.
Zastanawiam się nad tabelami tymczasowymi i zapisywać te dane za pomocą procedur składowych.Jak wiadomo
tabela tymczasowa z przedrostkiem # trwa do czasu trwania sesji lub do zakończenia połączenia,czyli użytkownik zamyka przeglądarkę i dane giną.Jako ID tych danych użyłbym GUID sesji -podobno jest unikatowy dla każdej sesji.Ma to swoje zalety,nie kumuluje danych w bazie bo dane giną,nie są trwałe.Minusem przypadkowe zamkniecie przeglądarki przez usera i utrata danych.Ale mniejsza o te plusy i minusy.Można to wzbogacić i użyć globalnej tabeli tymczasowej z przedrostkiem ## wtedy dane usuną się kiedy ostatni użytkownik przerwie połączenie,lub zamknie przeglądarkę.Zapisać GUID do ciacha i nawet jak zamknie przeglądarkę i otworzy ponownie ,można odtworzyć z ciacha guid sesji i odtworzyć dane z tabeli tymczasowej(tylko należy pamiętać ,że będą one istnieć dopóki ostatni użytkownik nie przerwie połączenia).

Po uzupełnieniu koszyka i przy kliknięciu zapłąć , anonimowy user wypełnia dane-imie nazwisko ,swój adres itd.Po wypełnieniu formularza,robię zrzut z tabeli tymczasowej do tabeli normalnej,kluczem tych tabel byłby GUID, pola z wypełnionymi danymi z formularza+ osobna tabela z zakupionymi towarami, tylko czy numer GUID się nigdy nie powtórzy-czy jest unikalny?

Potrzebuje jakiejś podpowiedzi,cz rozwiązanie jakie chce zastosować jest do bani ,może są lepsze?

Ten post edytował Niktoś 17.12.2011, 20:00:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nasty
post
Post #2





Grupa: Zarejestrowani
Postów: 634
Pomógł: 14
Dołączył: 27.05.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Cytat
tabela tymczasowa z przedrostkiem # trwa do czasu trwania sesji lub do zakończenia połączenia,czyli użytkownik zamyka przeglądarkę i dane giną

Nie do końca tak jest. Baza danych nie ma pojęcia o Twoich połączeniach z klientami serwera www. Tabele tymczasowe istnieją (zależnie od scope - Global lub local) do czasu aż skończy się wykonywać dany batch lub do czasu aż cokolwiek ma referencje na tą tabele po zakończeniu batcha.


Imho średni pomysł, będziesz miał za dużo kosztów administracyjnych i problemy z zapytaniami które wymagają dostęp do wszystkich koszyków (np wyciąganie statytyk, czyszczenie martwych koszykow, itd..).
Będziesz zmuszony do gimnastygowania się z dbo.master (o ile będziesz miał dostęp do tej tabeli - w co wątpię, jeśli nie będzie to Twój serwer) i generowania dynamicznego SQL-a co jest dosyć upierdliwe.

Jeśli już chcesz trzymać dane w tymczasowym miejsciu to trzymaj je w pamięci. Kiedyś (jakieś 5 lat temu z tego co pamiętam) nospor napisał klasę Cache, do której ja dodałem obsługę współdzielonej pamięci - możesz tamtego użyć. Powinno być na forum "Klasy, aglorytmy, itd.."

Ten post edytował nasty 18.12.2011, 00:03:46
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 01:47