![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 14.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam (temat już był, ale po którymś tam poście był brak reakcji więć przypinam raz jeszcze)
Jestem w trakcie pracy nad budowa systemu dla magazynu. Bedzie to moja praca dyplomowa i juz na wstepie napotkalem nastepujacy problem i jestem ciekaw jak Wy sobie byscie z nim poradzili... Dokument moze miec status: 1. Otwarty - mozna nanosic zmiany, usunac, edytowac, dodawac towary 2. Zaksiegowany - nie mozna nanosic zmian, mozna go wydrukowac Do kazdego dokumentu beda przypisane pozycje towarowe, od jednego do ...powiedzmy 99. Tylko towary z dokumentow zaksiegowanych beda wliczane do bilansu, inwentaryzacji itd. Poszedłem w kierunku nadmiarowości danych i trzymania "duuużo" kopii danych. Czy tak będzie dobrze? (IMG:http://www.feza.pl/magaz.jpg) ps. periods - okresy rozliczeniowe Pozdrawiam H. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Osobiście nie widzę sensu w trzymaniu dwóch takich samych tabel, szczególnie jeśli każda może mieć wiele rekordów. Co chcesz w ten sposób osiągnąć?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Takie rozwiązanie jest przydatne przy tworzeniu archiwum - dzięki temu można przenieść starsze pozycje do niego, co przyśpieszy pracę z nowymi (mniej rekordów w tabeli).
Co zaś się tyczy statusów dokumentów - po prostu dodaj stosowne pole do bazy danych w tabeli z dokumentami, i ew. w tabelach powiązanych. Przy każdej operacji możesz wtedy go sprawdzać i odrzucać operację jeżeli dotyczy dokumentów zaksięgowanych. Dodatkowo możesz też całość zautomatyzować pisząc trigger (po polsku wyzwalacz) wołany przy update rekordów, i on będzie sprawdzał status i dokonywał odrzucenia operacji. Sprawdź sobie tylko w dokumentacji bazy danych czy możesz stosować triggery. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 14.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Osobiście nie widzę sensu w trzymaniu dwóch takich samych tabel, szczególnie jeśli każda może mieć wiele rekordów. Co chcesz w ten sposób osiągnąć? Mianowicie: jeżeli użytkownik zmieni nazwę towaru, to na dokumentach archiwalnych pojawi się towar z nową nazwą, więc jeżeli dokument był drukowany jego aktualna wersja elektroniczna będzie się różniła od wydruku... znasz jakiś inny sposób zaradzenia temu? Takie rozwiązanie jest przydatne przy tworzeniu archiwum - dzięki temu można przenieść starsze pozycje do niego, co przyśpieszy pracę z nowymi (mniej rekordów w tabeli). Właśnie to chciałem osiągnąć. Czy takie rozplanowanie bazy sprawdzi się? Ten post edytował hubertinio 12.08.2008, 14:31:44 |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Przydalo by sie zachowanie takich samych ID obiektow w archiwum jak mialy wczesniej, nie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Cytat Mianowicie: jeżeli użytkownik zmieni nazwę towaru, to na dokumentach archiwalnych pojawi się towar z nową nazwą, więc jeżeli dokument był drukowany jego aktualna wersja elektroniczna będzie się różniła od wydruku... znasz jakiś inny sposób zaradzenia temu? Nadmiarowosc w tym przypadku jest ok. Inny sposob to Produkt, WersjaProduktu i po kazdej edycji produktu tworzysz nowy rekord wersji, a w zamowieniu odwolujesz sie do wersjia a nie produktu, ale to duzo wiecej roboty, i jesli nie potrzebujesz dodatkowej funkcjonalnosci (przebieg historii produktu, zmiany cen, etc.) ktora ta metoda ci dostarcza to sobie ja odpusc. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 14.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Przydalo by sie zachowanie takich samych ID obiektow w archiwum jak mialy wczesniej, nie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Czyli co i jak? (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:05 |