Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 26.12.2007 Ostrzeżenie: (0%)
|
Witajcie
Piszę sobie systemik do obsługi sprzedaży elektronicznej. Przyjęłam, że każdy zarejestrowany klient będzie miał własne ustalone rabaty, które się sumuje przy zamówieniu. Ze względu na to, że zestawy rabatów mogą powtarzać się u wielu klientów, stworzyłam w tabeli klienci oddzielne pole - rabat_id, oraz tabelę rabaty: rabat_id rabat_a rabat_b rabat_c (przykładowo). Przy zamówieniu, rabat całkowity będzie obliczany na podstawie sumy wszystkich poszczególnych rabatów. Co jednak, jeśli z bazy danych usunę rabat o określonym nr id? Nie chcę później sytuacji, że się okaże, iż po usunięciu rabatu, w danych o zamówieniu przywróciły się ceny wyjściowe, mimo, że były sprzedane po cenach rabatowych. Jak to rozwiązać? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
W takich przypadkach olewa się normalizację i wpisuje do danej tabeli aktualne dane. Przykładowo: robiąc tabelę zamówień produktów w sklepie powinnaś w niej zapisać aktualną cenę produktu, po jakiej został kupiony. Obliczanie ceny na podstawie relacji nie jest dobrym pomysłem - zmienisz cenę produktu to i zmienią się wartości zamówień. Można oczywiście przenieść ceny produktów do osobnej tabeli i przyjąć, że ostatni rekord dla danego produktu to jego aktualna cena (wówczas można pobierać cenę produktu na podstawie relacji). Jednak moim zdaniem jest to przerost formy nad treścią. Aczkolwiek z drugiej strony umożliwiałoby to przegląd historii cen produktu (IMG:style_emoticons/default/smile.gif)
|
|
|
|
elwierka Ważne rzeczy dot. bazy danych 12.10.2010, 11:42:17
elwierka Czyli, powiedzmy, że jakbym w tabeli zamówienia - ... 12.10.2010, 14:18:04 ![]() ![]() |
|
Aktualny czas: 25.12.2025 - 21:58 |