Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Relacja produkt - zamówienie
Forum PHP.pl > Forum > Bazy danych
camikazee
Poszukuje jakiegoś sensownego rozwiązania odnośnie pewnego problemu. Problem pojawia się choćby w sklepie internetowym, chodzi o relacje produkt - zamówienie. W uproszczeniu tabela zamówienia zawiera id produktu plus wiadomo dodatkowe informacje. Kwestia co zrobić gdy produkt zostanie usunięty, a użytkownik będzie chciał zobaczyć szczegóły zamówień czyli jakie produkty i za ile kupił. Wiadomo mogę wyświetlić informacje, że produktu już w bazie nie ma lub np po złożonym zamówieniu zapisywać je po prostu do pliku.
Macie jakieś ciekawe pomysły?
toffiak
Relacja produkt zamówienie to relacja wielu do wielu, jeden produkt może należeć do wielu zamówienień a zamówienie może mieć wiele produktów.

Co do usuwania produktów, możesz dublować dane produktu na przykład wiążąc dodatkową tabelę zawierającą zdublowane dane produktów z tabelą zamówienia, wtedy usuwając produkt z właściwej tabeli wciąż masz o nim informacje.
Lub drugie podejście, nie usuwać produktów a oznaczać je tylko jako usunięte, dla klienta produkty nie są widoczne ale w dokonanych zamówieniach masz dostęp do tych produktów.

W jednym ze swoich projektów miałem sytuację w której dane o produktach zmieniały się, zamówiernia klientów musiały dotyczyć produktów których cena była taka jak w chwili zamówienia, rozwiązałem to poprzez dodanie tabeli pozycje zamówienia, połączonej z zamówieniami z której były odnośniki do oryginalnych produktów plus informacje które mogły się zmienić jak: cena produktu.

W ten sposób nawet po oznaczeniu produktu jako niedostępny, lub zmienie jego ceny, poprzednie zamówienia klientów mogły być ponownie realizowane na podstawie poprzednich danych.
camikazee
Twoje rozwiązania są jak najbardziej słuszne pod warunkiem, że sklep jest mały i ma mało zamówień. Zapisywanie usuniętych produktów w bazie według mnie może się nie sprawdzić, boje się, że wielkość bazy danych rosłaby proporcjonalnie to ilości asortymentu, już wtedy lepiej chyba zrzucać je do plików.
A szukam najbardziej uniwersalnej i elastycznej metody, jeżeli takowa istnieje tongue.gif
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.