Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> sklep, pomysl na wyglad zamowien
pavelb
post 2.07.2006, 17:15:48
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


Witam!
Mam problem z ostatnim etapem kupowania w sklepie internetowym, a mianowicie gdzie trzeba dane z sesji zapisac w bazie danych.
Jakie do tego celu proponujecie zrobic tabele i jakie dane powiny byc zapisane w danej tabeli, kombinowalem juz roznie ale mi nie wychodzilo bo miedzy innymi przy kupieniu 3 przedmiotow dodaje 3 rekody do bazy danych i nie wiedzialem jak zrobic aby te 3 rekordy rozpoznawalo jako jedno zamowienie.
z gory wielkie thx jesli ktos opisze jakie rozwiazania zastosowal w swoim sklepie i na co zwrocic szczegolna uwage,
Pozdrawaiam smile.gif
Go to the top of the page
+Quote Post
Athlan
post 2.07.2006, 17:28:49
Post #2





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


ja proponuje przeczytać ten temat:
Temat: php problem z sesja
jako, że jesteś jego autorem smile.gif

tam zaproponawałem takie coś, aby w jednym rekordie zamowienia znajdowały się takie informacje:

- id zamówienia
- id usera zamawiającego
- itemy które chce kupić (ich ID oddzielone przecinkiem)

jak oddzielić przeinkim i jak to rozdzielić wspomniałem we wcześniej wspomnianym temacie

pozdrawiam smile.gif

Ten post edytował Athlan 2.07.2006, 17:29:44


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
Ludvik
post 2.07.2006, 17:46:27
Post #3





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Utworz 3 talice:

Zamówienia: identyfikator zamówienia, identyfikator użytkownika
Przedmioty: identyfikator przedmiotu i inne informacje
Przedmioty zamówienia: identyfikator zamówienia, identyfikator powiązanego z nim przedmiotu, ilość

Do zamówień wstawiasz 1 rekord z id zamawiającego użytkownika. Następnie do trzeciej tabeli wstawiasz przedmioty wymienione w zamówieniu i zapisujesz id obecnego zamówienia dla każdego z nich.


--------------------
Go to the top of the page
+Quote Post
pavelb
post 2.07.2006, 18:01:22
Post #4





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


hmm...
a w tabeli zamowienia nie zapisywac cen produktu?
Bo w momencie jak zaktualizuje tabele produkt i jego cene to w zamowieniach sie automatycznie zmieni cena i byla by wdety afera snitch.gif
Go to the top of the page
+Quote Post
Ludvik
post 2.07.2006, 18:10:59
Post #5





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Jeżeli chcesz zrobić coś takiego, to dopisuj ceny do tabeli wiążącej zamówienia z produktami.


--------------------
Go to the top of the page
+Quote Post
Athlan
post 2.07.2006, 18:18:29
Post #6





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


dlatego zrób jak mowiłem:

- tabela z zamówieniami (id zamówienia, id_produktu, id_usera)
- tabela produktów (id_produktu, cena i jeszcze co chcesz)
- userzy (id_usera, co tam chcesz)

i wtedy gdy w tabeli produktów zmienisz cenę, to w zamówieniu automatycznie też się zmieni bo pobierzesz ją LEFT JOIN'em (http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html) z tabeli produktów, to samo dotyczy się usera gdy ten nieoczekiwanie zmieni nick albo co smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
Ludvik
post 2.07.2006, 18:32:40
Post #7





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Z tym, że on chciał uzyskać odwrotny efekt smile.gif Chyba nikt nie oczekuje, że wraz ze zmianą aktualnej ceny, powinny zmienić się wartości obsłużonych już zamówień. Oszczędność jednej tabeli w twojej wersji spowoduje, że dopisanie jakichkolwiek informacji do zamówienia (nie licząc produktów) stanie się dość problematyczne - chyba nie będziesz przypisywał sposobu płatności do każdego przedmiotu?


--------------------
Go to the top of the page
+Quote Post
pavelb
post 2.07.2006, 18:42:35
Post #8





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 1.06.2006

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


Własnie wartosc zamowienia powina zostac zawsze taka sama obojetnie czy produkt ztanieje czy co, dlatego chyba lepiej w tabeli zamowienia dac kolumne cena no i masz racje bede tez musial dodac kolumne z rodzajem przesylki smile.gif
Go to the top of the page
+Quote Post
Athlan
post 2.07.2006, 18:53:38
Post #9





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


sposób płatności powinien być w tabeli z zamówieniami bez 2 słów, w tym celu proponuję stworzyć jeszcze jedną tabele: "platnosci":

- id_platnosci
- inne parametry takie jak nazwa, czy dodatkow podatek czy coś smile.gif

pozdrwaiam, to jest tylko moje zdanie smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
mls
post 4.07.2006, 09:20:13
Post #10





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Cytat(Athlan @ 2.07.2006, 19:18 ) *
i wtedy gdy w tabeli produktów zmienisz cenę, to w zamówieniu automatycznie też się zmieni bo pobierzesz ją LEFT JOIN'em (http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html) z tabeli produktów, to samo dotyczy się usera gdy ten nieoczekiwanie zmieni nick albo co smile.gif


A nie sądzisz, że nie może być takiej sytuacji, w której zmienisz klientowi cenę produktu który jest już w jego zamówieniu? Dlatego cena musi być zapisywana w zamówieniu i musi pozostać niezmieniona.


--------------------
Go to the top of the page
+Quote Post
Hacker
post 4.07.2006, 09:35:29
Post #11





Grupa: Zarejestrowani
Postów: 225
Pomógł: 0
Dołączył: 1.11.2005

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


Radzę ci rozwiązać problem tak jak powiedział Ludvik
Czyli
Kod
tabela zamówienia: id, id_usera, płatność, rodzaj przesyłki, adres do przesyłki itp.
tabela produkty: id, cena, inne informacje...
tabela użytkownicy: id, imię, nazwisko, adres, (i co tam jeszcze chcesz)
tabela produkty_zamówione: id_produktu, id_zamówienia, cena


@Athlan
znasz takie pojęcia jak projektowanie baz danych oraz pierwsza i druga postać normalna (1NF, 2NF)?

Ten post edytował Hacker 4.07.2006, 09:38:32


--------------------
(\.../)This is Bunny
(O.o)Copy Bunny into your signature to help him...
(> <)...on his way to world domination
Go to the top of the page
+Quote Post
php programmer
post 4.07.2006, 09:53:34
Post #12





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 5
Dołączył: 8.11.2004
Skąd: trójmiasto

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


do każdego z tych przedmiotów dajesz id zamówinia (używasz do tego specjalnej kolumny id_zamowienia),
które to zamówienie (tylko jedno) przedtem dajesz do tabeli o nazwie zamównia,
tabela zamowienia ma swoje id a takze info kto zamówił, data itp
dzieki temu nie musisz za kazdym razem dawac tych informacji do przemiotów


USER ---> Zamówienia <--- Przedmioty

Ten post edytował php programmer 4.07.2006, 09:53:59
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 22:07