Βάση δεδομένων για "ξενοδοχείο"

Συζητήσεις για τον Microsoft SQL Server

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από argate7 » 15 Απρ 2010 14:35

Καλησπέρα σας,

Σκεφτόμουν χτες τι μπορώ να κάνω για να γεμίσω το χρόνο μου μιας και τώρα δεν έχω κάποια εργασία στη σχολή. Σκέφτηκα να κάνω μία βάση η οποία όπως λέει και ο τίτλος θα είναι για "ξενοδοχείο" και το έχω μέσα σε "" επειδή δεν είναι για πώληση, αλλά για να περάσει ο χρόνος μου.

Έφτιαξα ένα πίνακα πελατών,δωματίων,κρατήσεων,ανέσεων και ανέσεων δωματίου. Θέλω να ρωτήσω κάτι. Μέσα στο πίνακα των κρατήσεων παίρνω τα κλειδιά από τους πίνακες : πελατών και δωματίων και τα κάνω primary keys σε αυτό τον πίνακα και έχω ακόμα άλλα 2 πεδία, dateIn και dateOut για να καταγράφω την ημερομηνία άφιξης και ημερομηνία αναχώρησης. Μέχρι στιγμής όλα γίνονται όπως θέλω αλλά έχω ένα μικρό πρόβλημα. Θέλω να βάζω ημ/νια άφιξης 15/04/2010 και ημ/νια αναχώρησης 18/04/2010 και να μου δεσμεύει όλες τις ενδιάμεσες ημερομηνίες και να μου δείχνει ότι ο Κώστας για παράδειγμα στις 15,16,17 και 18 έχει κλείσει το δωμάτιο 204 και δεν μπορεί να το κλείσει άλλος. Πώς μπορώ αυτομάτως να το κάνω να δεσμεύει όλες τις ημέρες? και ακόμα πως μπορώ να μην αφήνω να γίνονται πάνω σε αυτές τις ημέρες κρατήσεις για το συγκεκριμένο δωμάτιο?

Ευχαριστώ πολύ για τη βοήθεια σας!!

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από Apostolis_38 » 16 Απρ 2010 00:49

Μία ιδέα.

Βάλε άλλο ένα πεδίο που θα παίρνει 3 τιμές (π.χ. 1, 2, 3)
Το 1 θα σημαίνει οτι το δωμάτιο είναι free.
Το 2 υπό κράτηση αλλά όχι πληρωμένο (οπότε αν δεν πληρώσει αύριο ο πελάτης ενημερώνω τον επόμενο πελάτη οτι είναι δικό του)
και το 3 οτι είναι κρατημένο και πληρωμένο οπότε μη διαθέσιμο.

Οπότε (στην περίπτωσή σου) κάνοντας ένα select και βλέποντας οτι το "flag" είναι 3 αυτόματα αποκλείει τα συγκεκριμένα δωμάτια από το να κλειστούν από άλλο πελάτη.
Βάση αυτού θα μπορούσες ακόμα και να τα εμφανίζεις με διαφορετικό background color (πράσσινο, κίτρινο, κόκκινο), αν τυχόν χρησιμοποιείς κάποια γραφική απεικόνιση των κρατήσεων.

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από argate7 » 16 Απρ 2010 00:53

Ευχαριστώ για την απάντηση και τη θέληση να βοηθήσεις.

Καλή η ιδέα σου αν και δεν έχω φτάσει σε αυτό το στάδιο. Αν και το είχα στα υπόψιν αυτό για το "status" που λες.
Το βασικό μου πρόβλημα είναι ότι θέλω να κλείνεται αυτόματα το δωμάτιο και για τις ενδιάμεσες ημερομηνίες,όχι μόνο για το datein και το dateout.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από Apostolis_38 » 16 Απρ 2010 01:12

Επειδή έχει τύχει κι έχω ασχοληθεί λίγο με τέτοια εφαρμογή, αυτό που πιστεύω είναι πως θα πρέπει να "κλείνεις" μία μία μέρα ξεχωριστά. Μην προσπαθείς να παίξεις με "από τότε μέχρι τότε".
Θα σου δημιουργήσει προβλήματα.
Βάλε το πρόγραμμα να το κάνει χωρίς να φαίνεται στον χρήστη.
Δεν είναι απαραίτητο να κάνεις 4 κλίκ σε 4 ημερομηνίες για να "κλείσεις" το δωμάτιο αλλά προτίμησε να δηλώσεις "το 204 είναι κλεισμένο για τις 1-2-3-4/02/2010".

Και φυσικά λόγω της φύσης της συγκεκριμένης δουλειάς (ξενοδοχείο) αν προκύψουν τέτοια λάθη είναι τραγικά.
Μία λάθος κράτηση αρκεί να τα κάνει όλα μπάχαλο.
Αυτά για την περίπτωση που το δείς πιο επαγγελματικά.

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από argate7 » 16 Απρ 2010 01:58

Κοίτα, αρχικά όπως είπα και πιο πάνω, δεν το έχω για επαγγελματικό σκοπό. Το κάνω απλά για να περάσει η ώρα μου δημιουργικά και όχι ξύνοντας... Λοιπόν, αυτό που λες να το βάλω από μόνο του να κάνει την κράτηση όλων των ημερών το σκέφτηκα χωρίς όμως να ξέρω τον τρόπο για να το κάνω. Ή τουλάχιστον δεν μου έχει έρθει στο νου κάποιος τρόπος για να το κάνω. Έχεις εσύ κάποια ιδέα? με κάποιο trigger? και αν ναι, τί θα κάνει?? πως θα του δίνω να βάλει κάποιες ημερομηνίες για κράτηση?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από Apostolis_38 » 16 Απρ 2010 09:34

Θα κανεις κατι τετοιο:

Κώδικας: Επιλογή όλων

$datein = $_POST["datein"];
$dateout = $_POST["dateout"];

select * from table where date between ".$datein." and ".$dateout." and status = 1;
while $row(κ.λ.π. κ.λ.π.)
{
$day = $row["date"]

update table set status = 3 where date = ".$day.";
}
Οπως καταλαβαινεις, ολη η ιστορια ειναι στο select.
Επισης πολυ σημαντικο ειναι η μορφη της ημερονιας, να μην σου "φευγουν" δηλαδη ημερες στο date between.
Ισως θα ηταν καλο να χρησιμοποιησεις την timestamp αντι για την date.
Παντως οχι πεδιο του στυλ varchar οπου θα καταχωρεις χαρακτηρες με τη μορφη ημερομηνιας.

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από argate7 » 16 Απρ 2010 12:26

Καλημέρα,

Αρχικά θα ήθελα να σε ενημερώσω πως δεν θέλω να κάνω το πρόγραμμα σε php, αλλά να φτιάξω αρχικά την βάση και μετά να τη συνδέσω με τη vb.

Ακόμη, το πεδίο date που χρησιμοποιείς στο query και συγκεκριμένα στο where, δεν το έχω πουθενά σε κανένα πίνακα. Όσο για datatype της ημερομηνίας το έχω σε datetime.

Κατάλαβα πάντως τη φιλοσοφία σου. Βέβαια αυτό το while λιγάκι δύσκολο έως αδύνατο θα έλεγα να το υλοποιήσω μέσα στον sql server, οπότε θα περιμένω να τελειώσω και με τους υπόλοιπους πίνακες και να ξεκινήσω το σχεδιασμό των φορμών στη vb και να κάνω εκεί κάποιες function που θα καλούνται μέσα σε procedures για κάθε insert. Λογικά κάπως έτσι δεν γίνεται?

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από Apostolis_38 » 16 Απρ 2010 13:10

Θυμήθηκα που είχες ποστάρει απορίες στην PHP και νόμιζα οτι θα το υλοποιήσεις με αυτήν. :D

Για VB δεν μπορώ να σου πω κάτι συγκεκριμένο αλλά δεν νομίζω να μην έχει κάτι αντίστοιχο με το while ώστε να κάνεις τη δουλειά σου.
Εξάλλου την κεντρική ιδέα την κατάλαβες.

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από argate7 » 16 Απρ 2010 14:12

Ναι, μου έδωσες να καταλάβω τί πρέπει να κάνω. Κάποια στιγμή θα πρέπει να το δοκιμάσω. Απλά θα κάτσω να τελειώσω τη βάση και θα κοιτάξω μετά με δοκιμές πως θα βγάλω το αποτέλεσμα που θέλω.

Σ'ευχαριστώ που ασχολήθηκες με την απορία μου. Νά'σαι καλά!!!

setos
Δημοσιεύσεις: 1
Εγγραφή: 29 Ιουν 2010 16:21

Βάση δεδομένων για "ξενοδοχείο"

Δημοσίευση από setos » 29 Ιουν 2010 16:33

Γεία σας!! εχω κανει μια εργασία με θέμα "αυτοματοποίηση των κρατήσεων ενός ξενοδοχείου"
εχω δημιουργήσει 3 πινακες πελάτες, δωμάτια,κρατήσεις.
θέλω ακόμα να δημιουργήσω τα ακόλουθα ερωτήματα...
1-να δίνεις εύρος ημερομηνιών και θα σου εμφανίζει μόνο τα διαθέσιμα δωμάτια.
2-να δίνεις επώνυμο και όνομα πελάτη και θα σου εμφανίζει το δωματιο που έχει κλήσει.
3-να δίνεισ αριθμό δωματίου και θα βλέπεις το ιστορικό κρατήσεων του.


αν μπόρειτε καπως να βοηθήσετε σε αυτό!! ευχαριστώ

Απάντηση

Επιστροφή στο “MS SQL Server”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης