Witam,
tak jak w temacie prośba o ocenę schematu bazy danych kina. W tabeli bilety zapomniałem dodać kolumny (ilosc_biletow).
Dodatkowo mam jeszcze problem z zapytaniem sql. Chcialbym obliczyc ilosc wolnego miejsca podczas danego seansu (czyli ilosc_miejsc w sali - (suma zatwierdzonych rezerwacji + bilety)). Nie wiem za bardzo jak się za to zabrać. Próbowałem skorzystać z SELECT sum() ale nwm jak zrobić, żeby liczyło dla konkretnych sal, a nie dla wszystkich razem
0
1
Można by się przyczepić do takich drobnych rzeczy jak:
- ilość zarezerwowanych miejsc jako typ integer 11-znakowy (nie ma takiej sali kinowej o takiej ilości miejsc),
- kolumna dzien w sensach jest trochę niejednoznaczna lepiej nazwać to data_seansu, data jakoś tak,
- jeżeli będziemy wyświetlać 3 filmy reżysera X to będziemy mieli 3 wpisy w bazie - nadmiarowość można usunąć tworząc tabelę reżyserzy i dodawać tam rekordy,
- system informatyczny wykorzystujący tą strukturę raczej się nie sprawdzi w realnym świecie ponieważ nie mogę wybrać miejsc, które rezerwuje, ani które mam miejsce na bilecie - jedynie sprawdzę czy nie zarezerwowano (kupiono bilety) na wszystkie miejsca.
Co do drugiej części pytania to podaj to zapytanie, które stworzyłeś.
0
Dzięki za uwagi!
Niżej kod:
SELECT se.id_seansu,( sa.ilosc_miejsc - ((SELECT SUM(ilosc_biletow) FROM bilety b WHERE b.id_seansu = se.id_seansu ) + (SELECT SUM(ilosc_zarezerwowanych_miejsc) FROM rezerwacje r WHERE stan_rezerwacji = TRUE AND r.id_seansu = se.id_seansu))) AS 'wolne_miejsca' FROM seanse se, sale sa WHERE se.id_sali = sa.id_sali
Chciałbym, żeby tak to wygladało:
nr.seansu wolne_miejsca
1 22
2 50
3 120
4 64
0
Dzięki za podpowiedź pozdro.
0
Taka wskazówka odnośnie możliwego schematu (typy danych są kierunkowe).
Oczywiście trzeba sprawdzić czy wszystkie potrzebne założenia z procesów obsługi zostały przewidziane.