Witam. Problem jest czysto akademicki, i dotyczy tylko moich rozważań.
Załóżmy hipotetyczną prostą bazę danych obsługującą firmę handlową. Baza miałaby za zadanie:
- ewidencję zakupów i sprzedaży (przechowywałaby informację o fakturach zakupu i sprzedaży)
- ewidencję stanów magazynowych.
Konkretnie mój dylemat dotyczy tabeli reprezentującej magazyn.
W najprostszej postaci, taka tabela będzie miała postać:
MAGAZYN:
- id_towaru
- nazwa_towaru
i - problem - czy w tej tabeli powinna się znaleźć kolumna "ilość_towaru"?
Na zdrowy rozum - tak.
Z drugiej jednak strony, towar w magazynie nie bierze się znikąd i nie rozpływa się w powietrzu - aktualny stan magazynowy jest przecież wypadkową wszystkich faktur zakupu i sprzedaży.
Z trzeciej strony - faktur mogą być przecież olbrzymie ilości, zaś cały system może funkcjonować latami - i przeszukiwanie takiej bazy może być kłopotliwe w pewnym momencie.
Z czwartej strony - jeżeli przyjmiemy, że zapisujemy w bazie ilość towaru, to co jeżeli w pewnym momencie (na skutek np. jakiejś awarii w krytycznym momencie przetwarzania zapytania, (tak, wiem co to są transakcje)) liczba zapisana w bazie będzie różna, niż liczba wynikająca z zapisanych faktur?
Jak to jest rozwiązane w rzeczywistych systemach?