Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odrębna numeracja zleceń
Forum PHP.pl > Forum > Bazy danych > MySQL
grafikon
Witam

Piszę obecnie skrypt do zarządzania zleceniami. Zlecenia napływają z 4 rejonów (I, II, III, IV). Każdy z rejonów ma mieć własną numerację w stylu:
kolejny numer/rejon/rok np 458/III/2011, 123/II/2011 itp.

Tak wygląda formularz:



A tak struktura bazy:



Obecnie wybieram rejon, a numer na podstawie id jest dodawany automatycznie. Tylko że jest to kolejny numer dla wszystkich rejonów.

Pytanie:
Jak zrobić, aby po wybraniu rejonu, wypełnieniu formularza, podczas zapisu do bazy zapisał się kolejny numer w obrębie danego rejonu ?
Czy można to zrobić przy jednej tabeli za zleceniami, czy muszę stworzyć 4 odrębne ?

NEO.pl
zaloz locka na tabele, wybierz najwiekszy numer dla danego regionu; utworz nowy numer; zapisz do bazy; zdejmij locka

I nadal jedna tabela wystarczy. Oczywiscie musisz usunac primary key z id_zlec z oczywistych powodow (ale unique moze juz byc na id_zlec + id_rejonu


PS: zawsze mi sie podobaja "optymalizacje" typu "zlec" zamiast "zlecenie". Poza tym po co "_zlec" w ogole, skoro tabela "zlecenia" sie nazywa? zakladam zeby przy joinach sie nie pogubic ale mimo wszystko "AS" nie jest az tak skomplikowane do uzycia.
grafikon
Cytat(NEO.pl @ 23.03.2011, 10:44:11 ) *
zaloz locka na tabele, wybierz najwiekszy numer dla danego regionu; utworz nowy numer; zapisz do bazy; zdejmij locka

I nadal jedna tabela wystarczy. Oczywiscie musisz usunac primary key z id_zlec z oczywistych powodow (ale unique moze juz byc na id_zlec + id_rejonu


PS: zawsze mi sie podobaja "optymalizacje" typu "zlec" zamiast "zlecenie". Poza tym po co "_zlec" w ogole, skoro tabela "zlecenia" sie nazywa? zakladam zeby przy joinach sie nie pogubic ale mimo wszystko "AS" nie jest az tak skomplikowane do uzycia.


Mógłbym prosić o rozwinięcie tematu "wybierz największy numer dla danego regionu" ?
Załóżmy że w bazie Zlecenia nie ma jeszcze żadnych rekordów. Dodaję nowy rekord. Wybieram na formularzu np. Rejon II. Pole id_zlec przyjmuje wartość 1
Czy mam dodać kolejne pole na numer ?

Już sobie poradziłem. Dodałem nowe pole nr_zlecenia i takie zapytanie
Kod
mysql_query("select MAX(nr_zlec) AS ile FROM zlecenia where id_rejon_zlec=$id_rejon_zlec")
NEO.pl
Cytat
Czy mam dodać kolejne pole na numer ?

Tak, bo co innego to unikalny numer zestawu danych (czyli u Ciebie id_zlec) a co innego jakistam numer porzadkowy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.