Mam tabelki: Halls (Sale), sale mają swoje miejsca (Seats), sale mają też seanse (Screenings), ale jednocześnie każdy seans ma własne miejsca ze statusem (wolne/zajęte), czyli mam jeszcze tabelkę ScreeningSeats. Czy takie rozwiązanie jest ok czy da się to lepiej zrobić?
Diagram:
0
1
Prawie okej. Nie ma sensu tabelka zawierająca jedynie idki (halls).
0
Można by dodać do tabeli halls pola np. hall_name lub hall_address
0
To w ogóle jest słaby pomysł, zaczynać od programowania aplikacji robiąc takie tabelki. Powinieneś zacząć od napisania logiki biznesowej.
0
Pinek napisał(a):
Prawie okej. Nie ma sensu tabelka zawierająca jedynie idki (halls).
Chyba jednak ma sens - Tabela "halls" to po prostu sale kinowe. Jak chcesz inaczej obsłużyć kilka sal kinowych?
Jedyne co mi nie pasuje to:
- brak id w tabeli "halls_seats" - odnosisz się do niej w tabeli "screening_seats" przez "hall_seat_id" ale co to oznacza? To powinien być klucz obcy do indywidualnego id fotela który ma swój numer i rząd. Chyba, że "hall_seat_id" to właśnie "number" z tej tabeli, ale wtedy odniesienie nie powinno być przez "id" tylko np. "hall_seat_number" żeby to było jasne i czytelne
- Podobnie klucze obce w innych tabelach już nie będę tego wymieniać, ale zawsze jak konstruujesz klucz obcy powinno to być jasne czego dotyczy, np. zamiast "seat_id" powinien być "hall_seat_id" -> wtedy po samej nazwie już wiadomo do której tabeli jest klucz obcy
- ...i tym samym nazwy samych tabel lepiej robić w liczbie pojedynczej niż mnogiej, bo dzięki temu i odpowiedniemu nazewnictwu kluczy obcych, nie trzeba patrzeć na diagram tylko same nazwy i wszystko jest jasne