Ciekawy problem (sklep/hurtownia).
Powiedzmy, że jest tabela towary (ean, nazwa, cena).
Towary możemy kupować i sprzedawać po różnych cenach.
Mamy więc tabelę składowane_towary (ean, data_dodania, liczba_sztuk, cena_zakupu) //cena, po której towar został kupiony.
Przykład: kupujemy towary
Dnia 18/03/18 1839,049 dodajemy towar 0001 w liczbie sztuk 30, cena zakupu 490 zł/szt.
Dnia 22/03/18 1510,082 dodajemy towar 0001 w liczbie sztuk 50, cena zakupu 370 zł/szt.
Teraz sprzedaż. Raz wprowadzona do bazy cena zakupu jest stała. A cena sprzedaży w skrajnym przypadku może być inna dla każdego egzemplarza, jeżeli będzie się często zmieniać.
Jak zachować historię sprzedaży, np do późniejszego obliczenia jaki zysk wygenerował towar 0001? Muszę pamiętać liczbę sprzedanych sztuk, cenę zakupu i sprzedaży.
- Myślałem nad stworzeniem nowej tabeli i wrzucaniem do niej historii sprzedaży. A w tabeli składowane_towary zmniejszać liczba_sztuk po sprzedaniu towaru. Taka tabela szybko może się rozrosnąć, ale można zrobić miesięczne statystyki i inne bajery.
- Lub zamiast trzymania w tabeli składowane_towary dla różnych dat różnych cen produktów - przy dodawaniu jakiejś partii produktu który już jest w tabeli, obliczać nową średnią cenę zakupu dla wszystkich i trzymać ją w kolumnie. Trzeba by wtedy dodać kolumnę do sumowania zysku ze sprzedaży. Tu nie mam pełnej historii, ale tyle mi prawdopodobnie wystarczy + rekordów jest nie więcej niż produktów.
Wyglądałoby to tak: (ean, liczba_niesprzedanych, liczba_sprzedanych, śr_cena_zakupu, całkowity_zysk). - A może jeszcze inaczej?
Czy któryś sposób polecacie/odradzacie? Jak się to robi w profesjonalnych aplikacjach?