Προς το περιεχόμενο

Βοήθεια για σωστή δημιουργία βάσης δεδομένων


merinc186

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερίζω την κοινότητα,

 

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

 

table: Customers

id

name

town

telephone

 

table: Cars

id

name

number

 

Είναι σωστή η δημιουργία των παραπάνω βάσεων;

Χρειάζομαι κι άλλον πίνακα για τα στατιστικά μου;

Χρειάζομαι πεδίο για την αποθήκευση της ημερομηνίας;

Δημοσ.

Κατα την ταπεινή μου άποψη, χρειάζεται άλλον έναν πίνακα ο οποίος θα πέρνει ως foreign keys το id του Cars και το id του Customers, και μαζί θα είναι primary key στο καινούργιο πίνακα, όπου μπορείς να βάλεις και τα υπόλοιπα πεδία που σε ενδιαφέρουν, π.χ. ημερομηνία κλπ.

 

 

Καλησπερίζω την κοινότητα,

 

και ποιο αυτοκίνητο έχει νοικιασθεί από πόσους και ποιους πελάτες.

 

 

Εφόσον λοιπόν κάθε id θα είναι διαφορετικό για κάθε αυτοκίνητο, ένα αυτοκίνητο θα ενοικιάζεται από έναν customer και από το key του που το φέρνει στο καινούργιο πίνακα ξέρεις ποιος είναι αυτος που το έχει ενοικιάσει.

Δημοσ.

Όπως είπε και ο elis88 η σχέση που θες να δημιουργήσεις μεταξύ των customers και cars είναι many to many. Ένας πελάτης μπορεί να έχει ενοικιάσει πολλά αμάξια σε διάφορες χρονικές περιόδους και ένα αμάξι θα ενοικιαστεί σε πολλούς πελάτες.

Αυτή η σχέση απαιτεί τη δημιουργία ενός ενδιάμεσου πίνακα με δύο στήλες: η μια θα έχει το customer_id και η άλλη το car_id. Έτσι θα έχεις σε αυτόν τον πίνακα μία εγγραφή για κάθε ενοικίαση αυτοκινήτου για κάθε πελάτη. Επιπλέον, μπορείς να προσθέσεις στήλες σε αυτόν τον πίνακα για να κρατάς τα δεδομένα της εκάστοτε μίσθωσης, πχ πόσα χλμ διάνυσε, πόσο τον χρέωσες κλπ.

Ό,τι στατιστικά θέλεις να βγάλεις για πελάτες και αμάξια θα τροφοδοτούνται από αυτόν τον πίνακα.

Τέλος, επειδή ένα αμάξι μπορεί να ενοικιαστεί περισσότερες από μια φορές από τον ίδιο πελάτη, ο συνδυασμός customer_id και car_id σε αυτόν τον πίνακα δεν πρέπει να είναι μοναδικός, οπότε μην τον βάλεις σαν primary key.

Δημοσ.

Ουπς ναι σωστός ο Λεφτέρης για το primary key, μου διέφυγε :P Σόρυ

 

Μπορείς όμως για primary να βάλεις το id του customer, id του cars και την ημερομηνία της ενικοίασης.

Δημοσ.

Θα συμφωνήψω με τους προλαλήσαντες. Αυτό που θες είναι κάτι τέτοιο.

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...)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...