![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie, konstruje bazę danych dla systemu obiegu umów.
Wygląda to tak, że klient sprzedaje usługi i zależnie od specyfiki każda usługa ma nieco inna umowę. Aktualnie są 3 rodzaje umów, ale w przyszłości planowane jest więcej. Wpraktyce jest tak, że logistyk czyli osoba wysyłająca umowy potrzebuje widzieć wszystkie pozycje na jednej liście, ale osoby weryfikujące ich poprawność są już odpowiedzialne tylko za swoje własne rodzaje umów. Pomyślałem że zrobię to tak: Tab: umowy id PK id1 - klucz obcy (jeśli podany oznacza że jest to rodzaj pierwszy) id2 - klucz obcy (jeśli podany oznacza że jest to rodzaj drugi) id3 - klucz obcy (jeśli podany oznacza że jest to rodzaj trzeci) ..... inne pola stałe dla każdej umowy Tab: umowy_rodzaju_pierwszego id ..... inne specyficzne pola dla umowy tego rodzaju Tab: umowy_rodzaju_drugiego id ..... inne specyficzne pola dla umowy tego rodzaju Tab: umowy_rodzaju_trzeciego id ..... inne specyficzne pola dla umowy tego rodzaju Czy taki będzie ok? czy macie jakies inne pomysły ? Ten post edytował billy235 30.03.2012, 21:47:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 18.03.2008 Skąd: Olsztyn Ostrzeżenie: (20%) ![]() ![]() |
Uważam że dobrze myślisz.
Ja bym stworzył system który by miał opcje: Umowa/Umowy | | -Umowa1 | -Umowa2 | -Umowa2 Chyba że rodzaj umowy jest przypisany du urzytkownika to wtedy meni było by z jego typem umowy. Ten post edytował kaminskp 30.03.2012, 20:42:13 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź tylko toroche jej nie zrozumiałem.
Mógłbyś rozwinąć ? Klienci z którymi są podpisywane te umowy nie muszą byc gromadzeni w jakąś tabelę oddzielną. Jeśli pytałes o to. Natomiast osoby przegladające (weryfikujące) konkretne umowy, rzeczywiście będą mieli rodzaj umowy przypisany do siebie. I może być tak że jedna osoba dostanie dwa rodzaje. Zatem planuje tabelę tab: osoby_sprawdzajace id imie_nazwisko rodzaje_umow -- varchar (poprzecinku rodzaje umow np. "1, 2, 3") .... inne pola o tym pracowniku Ale Nie wiem ten pomysł nie jest zbyt prymitywny. Co myślicie? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 18.03.2008 Skąd: Olsztyn Ostrzeżenie: (20%) ![]() ![]() |
Jak dobrze czytam to będzie także tabela z danymi osób które sprawdzają:
osoby_sprawdzajace id imie_nazwisko rodzaje_umow -- varchar (poprzecinku rodzaje umow np. "1, 2, 3") .... inne pola o tym pracowniku Uważam że by było dobrze. W momencie kiedy osoba sprawdzająca wchodziła do systemu ma meni z umowami jakie są dostępne w tabeli. Upraszcza to obsługą systemu i nie powoduje jakiś pomyłek. Jak dobrze czytam to jest to tablica jedno wymiarowa rodzaje_umow -- varchar (poprzecinku rodzaje umow np. "1, 2, 3") if rodzaje_umow =(1,2,3) then Umowa1 Umowa2 Umowa3 end if if rodzaje_umow =(0,2,3) then Umowa2 Umowa3 end if if rodzaje_umow =(1,0,3) then Umowa1 Umowa3 end if if rodzaje_umow =(1,2,0) then Umowa1 Umowa2 end if if rodzaje_umow =(0,03) then Umowa3 end if if rodzaje_umow =(1,0,0) then Umowa1 end if if rodzaje_umow =(0,2,0) then Umowa2 end if Może źle myślę. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Twój pomysł ciekawy ale troszkę inaczej to chciałem zrobić.
Pomyślałem żeby to nieco zmodyfikować i pokazać
Tabele z rodzajami umów (one z tabelą "umowy" są w relacji jeden do jeden):
tabela: tab: osoby_sprawdzajace pozostanie bez zmian Jak loguje się osoba_sprawdzająca to wykonuje się zapytanie
W ten sposób otrzymamy przypisane do niego rodzaje umów. w postacie ciągu np. "1, 2, 3" - ciąg oznacza że ta osoba ma dostęp do umów 1 (pierwszego) rodzaju, 2 (drugiego), 3 (trzeciego). Potem chciałbym jednym zapytaniem pobrać jego wszystkie umowy razem z ich indywidualnymi szczegółami. Zatem niezbędne będzie zapytanie łączące tabele główną "umowy" z tabelami rodzajów. Załóżmy że poprzednie zapytanie wyświetliło: "1, 2", Zatem będziemy łączyć tabele: "umowy" , "umowy_1", "umowy_2".
wynik: Kod id status rodzaj_umowy cos_innego3 nip 3 f 1 1dfdgf NULL 4 f 1 1adsfdg NULL 5 f 1 1esrfd NULL 6 f 1 1asrg NULL 7 g 2 NULL 3414 8 y 2 NULL 3141 9 h 2 NULL 3234 10 g 2 NULL 4135 11 g 2 NULL NULL Zapytanie działa poprawnie. Ale niewiem jak to jest wydajne. No i widac pewne wady. Co prawda to system pisany w php będzie dbał by coś takiego nie miało miejsca, ale widzimy że jak wprowadzona jest nowa umowa to trzeba ją wprowadzać w dwóch miejscach. Najpierw w tabeli "umowy" potem w "umowy_1" lub innej zależnie od pola u.rodzaj_umowy. Dlatego tak myslę czy nie da się tego jakos ciekawiej zrobić (IMG:style_emoticons/default/questionmark.gif) Ten post edytował billy235 31.03.2012, 16:32:14 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:31 |