![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 11 Dołączył: 5.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z zaprojektowaniem schematu bazy danych na faktury. Chodzi o to, ze jeżeli klient kupił np. 20 klawiatur i 5 myszek i została mu wystawiona faktura, a po jakimś czasie zwrócił 5 klawiatur to trzeba mu wystawić fakturę korygującą na której będzie napisane coś w stylu:
POZYCJE KORYGOWANE klawiatura | 20 | .... POZYCJE PO KOREKCIE klawiatura | 15 | ..... Tutaj macie jakąś przykładową znalezioną w google fakturę korygującą żeby to jakoś obrazowo pokazać: http://gusoft.com.pl/faktorzysta/graph/fak...kladowa_kor.pdf Oczywiście nie można w związku z tym zmienić ilości zamówionych klawiatur w tabeli POZYCJE_ZAMOWIENIA bo potem przy tworzeniu faktury nie byłoby skąd wziąć pierwotnej liczby zamówionych klawiatur, a na fakturze muszą być pierwotne i ostateczne wartości. W związku z tym zaprojektowałem taki schemat bazy danych: (IMG:http://img198.imageshack.us/img198/1699/aaanke.jpg) Tabela POSITIONS_ORDER_CORRECTION - czyli pozycje zamówienia, które uległy zmianie - tabela ta jest niemal kopią tabeli POSITIONS_ORDER - czy w związku z tym ten schemat jest ok ? Bo innego sposobu na to chyba nie ma ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 19 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
moim zdaniem teraz wygląda całkiem nieźle,
można by dodać jeszcze jakieś szczegóły, np. id_faktury_korygowanej do tablicy faktur aby mieć możliwość śledzenia która korekta jest do jakiej faktury (kiedyś w jednej firmie widziałem fakturę, do której było 5 faktur korygujących czyli była korekta korekty itd), ale to zależy czy chcesz mieć taką funkcjonalność. Jeszcze taka uwaga - jeśli będziesz potrzebował jakichś sumowań (np. ile sprzedano towarów w danych okresie), to warto od razu zastanowić się jaki wpływ na to będą miały faktury korygujące, np. takie wyrażenie sum(ilosc) from pozycje_faktury; zadziała prawidłowo bez faktur korygujących, ale z fakturami korygującymi już niekoniecznie. Ja to rozwiązuje w ten sposób, że w przypadku faktur korygujących do kolumny ilość wpisuję różnicę pomiędzy tym ile powinno być a ile było. Przykład (tabela pozycje_faktury): ilosc ile_bylo ile_powinno_byc 20 NULL NULL // zwykła faktura -5 20 15 // faktura korygująca teraz sumowanie działa prawidłowo - faktycznie sprzedano 15 szt. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 23:52 |