merinc186 Δημοσ. 29 Μαΐου 2008 Δημοσ. 29 Μαΐου 2008 Καλησπερίζω την κοινότητα, Θέλω να δημιουργήσω μια εφαρμογή για ενοικίαση αυτοκινήτων, στην οποία θα έχω το πελατολόγιο μου, τα αυτοκίνητά μου, και ποιο αυτοκίνητο έχει νοικιασθεί από πόσους και ποιους πελάτες. table: Customers id name town telephone table: Cars id name number Είναι σωστή η δημιουργία των παραπάνω βάσεων; Χρειάζομαι κι άλλον πίνακα για τα στατιστικά μου; Χρειάζομαι πεδίο για την αποθήκευση της ημερομηνίας;
elis88 Δημοσ. 29 Μαΐου 2008 Δημοσ. 29 Μαΐου 2008 Κατα την ταπεινή μου άποψη, χρειάζεται άλλον έναν πίνακα ο οποίος θα πέρνει ως foreign keys το id του Cars και το id του Customers, και μαζί θα είναι primary key στο καινούργιο πίνακα, όπου μπορείς να βάλεις και τα υπόλοιπα πεδία που σε ενδιαφέρουν, π.χ. ημερομηνία κλπ. Καλησπερίζω την κοινότητα, και ποιο αυτοκίνητο έχει νοικιασθεί από πόσους και ποιους πελάτες. Εφόσον λοιπόν κάθε id θα είναι διαφορετικό για κάθε αυτοκίνητο, ένα αυτοκίνητο θα ενοικιάζεται από έναν customer και από το key του που το φέρνει στο καινούργιο πίνακα ξέρεις ποιος είναι αυτος που το έχει ενοικιάσει.
lefterhs Δημοσ. 29 Μαΐου 2008 Δημοσ. 29 Μαΐου 2008 Όπως είπε και ο elis88 η σχέση που θες να δημιουργήσεις μεταξύ των customers και cars είναι many to many. Ένας πελάτης μπορεί να έχει ενοικιάσει πολλά αμάξια σε διάφορες χρονικές περιόδους και ένα αμάξι θα ενοικιαστεί σε πολλούς πελάτες. Αυτή η σχέση απαιτεί τη δημιουργία ενός ενδιάμεσου πίνακα με δύο στήλες: η μια θα έχει το customer_id και η άλλη το car_id. Έτσι θα έχεις σε αυτόν τον πίνακα μία εγγραφή για κάθε ενοικίαση αυτοκινήτου για κάθε πελάτη. Επιπλέον, μπορείς να προσθέσεις στήλες σε αυτόν τον πίνακα για να κρατάς τα δεδομένα της εκάστοτε μίσθωσης, πχ πόσα χλμ διάνυσε, πόσο τον χρέωσες κλπ. Ό,τι στατιστικά θέλεις να βγάλεις για πελάτες και αμάξια θα τροφοδοτούνται από αυτόν τον πίνακα. Τέλος, επειδή ένα αμάξι μπορεί να ενοικιαστεί περισσότερες από μια φορές από τον ίδιο πελάτη, ο συνδυασμός customer_id και car_id σε αυτόν τον πίνακα δεν πρέπει να είναι μοναδικός, οπότε μην τον βάλεις σαν primary key.
elis88 Δημοσ. 29 Μαΐου 2008 Δημοσ. 29 Μαΐου 2008 Ουπς ναι σωστός ο Λεφτέρης για το primary key, μου διέφυγε Σόρυ Μπορείς όμως για primary να βάλεις το id του customer, id του cars και την ημερομηνία της ενικοίασης.
asxeto4 Δημοσ. 30 Μαΐου 2008 Δημοσ. 30 Μαΐου 2008 Θα συμφωνήψω με τους προλαλήσαντες. Αυτό που θες είναι κάτι τέτοιο. table: Customers Customerid (primary key) name town telephone table: Cars Carid (primary key) name number Table: CustomerCars: customercarid (primary key) customerid carid start_rent_date end_rent_date money (poso to xreoses...)
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.