Witam,
mam pewien problem, nie bardzo wiem jak ugryźć taką rzecz. Mam tabele w bazie danych:
szkolenie [id, nazwa, liczba_miejsc...]
zapis [id, szkolenie_id, zaplacone...]
zapis_osoba [id, zapis_id, imie, nazwisko]
Generalnie idea jest taka, że dodawane są szkolenia, które mają określoną liczbę miejsc (z pewną, nieokreśloną, tolerancją +/-). Użytkownicy mogą zapisywać się na takie szkolenia; jeden użytkownik może zapisać kilka osób "za jednym zamachem". Jeżeli użytkownik zapisze się w momencie gdy przekroczona zostanie liczba miejsc to ląduje on na liście rezerwowej.
Aby to zobrazować: dodajemy szkolenie dla liczba_miejsc = 3. Użytkownik user_1 zapsiuje Jasia i Krysię, user_2 zapisuje Zdzisia i Henia, user_3 zapisuje Mariolę i Grzesia. Jak widać łącznie zapisano 6 osób, a miejsc wolnych jest 5 (+ tolerancja). W wyniku tego zapisy user_1 i user_2 lądują jako "właściwie", natomiast zapisy user_3 są na liście rezerwowej.
Pytanie:
W jaki sposób mogę stworzyć zapytanie (aby zrobić z niego widok), które do tabeli "zapis" dołoży mi kolumnę 0/1 dla 1=zapis właściwy oraz 0=lista rezerwowa?
Jedyne rozwiązanie jakie mi się nasuwa to bazowanie na numerowaniu wierszy by ~nospor. Należałoby pobrać dane posortowane po szkolenie_id i na bieżąco dodawać liczby osób w danym zapisie i gdy liczba ta będzie nagle większa od liczby dostępnych miejsc to wstawiać 0 (wcześniej wstawiając 1). W momencie zmiany wartości szkolenie_id należałoby zerować wartość licznika. Wydaje mi się to trochę zamotane i szczerze mówiąc nie wiem czy to ogarnę (+ dodatkowe tabele i warunki) więc prosiłbym o pomoc w tej kwestii.
Z góry bardzo dziękuję,
pion