Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza danych pensjonatu. Sprawdzcie czy dobrze, MySQL
ppietras86
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


witam
Zrobiłem dość prostą bazę danych dla pensjonatu.
Pensjonat posiada 6 pokoi: dwa 4-osobowe i cztery 2-osobowe pokoje. (nie wiem czy potrzeba tam ilosc lozek-w sumei to chyba nie potrzebne). Na stronce ma byc możliwość sprawdzenia dostępności pokoji w zadanym terminie. No i oczywiscie mozliwość zarezerwowania pokoju. Nie wiem czy dobrze zrobiłem tabele płatności

Popatrzcie proszę was ślicznie i wpiszcie swoje uwagi. Krytykujcie ile wlezie bo to mi sie przyda - rzecz jasna poczytam również z checią waszych propozycje i rozwiązania (IMG:style_emoticons/default/smile.gif)

(IMG:http://www.kwm.pl/baza.jpg)

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Gapollo
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 5
Dołączył: 2.11.2006
Skąd: 52.259 °N, 21.020 °E

Ostrzeżenie: (0%)
-----


Uzasadnij wydzielenie osobnych tabel rezerwacje, platnosci, rezerwacje_dla_pokoi.
Go to the top of the page
+Quote Post
vokiel
post
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Wydruk i zdjęcie wydruku (IMG:style_emoticons/default/blinksmiley.gif) ? A PrtintScreen nie działa?

Rezerwacje dla pokoi niepotrzebne. Przerzuć to jedno pole (id pokoju) do rezerwacji.

Płatności przy tej funkcjonalności możesz połączyć z rezerwacjami (cena, stan). W końcu cena pokoju może być zależna od czegoś tam (dostawienie łóżka, internet, 3 razy dziennie sprzątanie, dodatkowe ręczniki, prezerwatywy w łazience, etc). Czyli może być ustalona indywidualnie dla danego zamówienia/rezerwacji.
Go to the top of the page
+Quote Post
ppietras86
post
Post #4





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


Print screen działa tylko już mi sie gdzies ten schemat w kompie zapodział a miałem tylko wydruk i cyknąłem szybko zdjęcie. (IMG:style_emoticons/default/smile.gif) )
Hmmm rezerwacja_dla_pokoi - nie wiem - tak nas uczono na wykładach - ze jesli by ktoś chciał rezerwować wiecej pokoi niż jeden. relacja jedna rezerwacja na wiele pokoi (ale też mi sie to dziwne wydawało - takie bez sensu).
Dziękuje wam bardzo za pomoc (IMG:style_emoticons/default/smile.gif) pozmieniam baze i bedzie ok

Hmmm tak sie dzisiaj zastanawialem jak zrobic zapytanie SQL do tej bazy. Mianowicie - sprawdzić dostepność wszystkich pokoji w zadanym terminie np. od 26.02.2010 do 28.02.2010.
Ma ktoś jakiś pomysł - ja coś tam próbowałem ale zielony z tego jestem (IMG:style_emoticons/default/sad.gif) (

Proszę o pomoc

Ten post edytował ppietras86 20.01.2010, 02:43:42
Go to the top of the page
+Quote Post
phpion
post
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ja bym jeszcze zastanowił się nad typami pól. Czy na pewno potrzebujesz aż 50 znaków na kod pocztowy, NIP, PESEL...? Sprawdź wszystkie pola i dobierz optymalne wartości. Poza tym sprawdź możliwość wstawiania wartości NULL do pól (szczególnie ilosc_osob w tabeli rezerwacje) bo moim zdaniem w większości przypadków NULLe nie powinny być dozwolone.
Go to the top of the page
+Quote Post
ppietras86
post
Post #6





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 19.01.2010

Ostrzeżenie: (0%)
-----


hej
A jak zrobić zapytanie w MySQL aby wypisywalo mi z bazy dostepne pokoje w zadanym jakims terminie. np. chce sprawdzic czy jest i jesli tak to jakie pokoje sa dostepne w terminie od 01.02 do 02.02 na przykład - chce aby wypisywalo mi pokoj, numer pokoju, cene.
Bardzo prosze o pomoc. Rzecz jasna zapytanie odnosi sie do bazy w fotce.



edit-----------

Zrobiłem za pomocą jednego posta z tego forum i kilku artykułów na necie zapytanie

przypomina schemat bazy (troche zmieniona)

(pokoje)
- id_pokoju
- numer_pokoju
- ilosc_osob
-cena
-uwagi

(rezerwacje)
- id_rezerwacji
- id_klienta
- id_pokoju
- data_od
- data_do
- ilosc_osob
- kwota
- czy_zaplacone

Zapytanie jest następujące:
  1. SELECT numer_pokoju, cena,
  2. IF (
  3. mid( group_concat( data_od ORDER BY data_od DESC separator ' ' ) , 1, 10 ) < '2010-02-11',
  4. mid( group_concat( data_do ORDER BY data_od DESC separator ' ' ) , 1, 10 ) ,
  5. mid( group_concat( data_do ORDER BY data_do DESC separator ' ' ) , 12, 10 )) AS wolna_data_od,
  6. IF (
  7. mid( group_concat( data_od ORDER BY data_od DESC separator ' ' ) , 1, 10 ) < '2010-02-11', '~',
  8. mid( group_concat( data_od ORDER BY data_od DESC separator ' ' ) , 1, 10 )) AS wolna_data_do
  9. FROM pokoje LEFT JOIN rezerwacje USING ( id_pokoju )
  10. WHERE data_od < '2010-02-11' OR data_do >= '2010-02-11' OR data_do IS NULL
  11. GROUP BY numer_pokoju


Przeszukuje mi to baze danych i wypluwa w zadanym terminie pokoje - ALE wyświetla wszystkie pokoje - te zarezerwowane i te wolne wraz z datami.

Próbka tego co daje na wyjściu:(te pauzy zastępują spacje)
Cytat
numer_pokoju cena wolna_data_od wolna_data_do
1------------------25-----------------------~
2------------------25---NULL---------------NULL
3------------------25---2010-02-11-------2010-02-12
4------------------25---NULL---------------NULL
5------------------35-----------------------2010-02-11
6------------------35---NULL---------------NULL

Jak zmienic zapytanie aby wyświetlało mi tylko i wyłącznie numery pokoi wraz z cena WOLNYCH POKOI (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (moze byc bez zakresu od kiedy o kiedy)

A może trzeba coś dodać jeszcze do bazy?? No i nie wiem czy dobrze grupuje na samym końcu zapytania

Prosze o pomoc bo stanąłem w jednym punkcie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 20:38