Κατά την ανάπτυξη ενός έργου λογισμικού, μία από τις πιο σημαντικές, θεμελιώδεις και εγγενείς πτυχές είναι ένα σωστά δομημένο σχήμα βάσης δεδομένων. Είναι το ισοδύναμο του όταν χτίζετε ένα σπίτι που πρέπει να διασφαλίσετε ότι τα θεμέλια είναι σωστά τοποθετημένα, διαφορετικά οι πιθανότητες να χτίσετε μια ποιοτική κατοικία μειώνονται δραστικά.
Παραδόξως ευκολότερο από ό, τι θα σκεφτόταν, ας μάθουμε τις διάφορες πτυχές που χρησιμοποιήθηκαν για να γράψουμε ένα καλά αρχιτεκτονικά σχήμα βάσης δεδομένων.
ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑΣ Σύνταξη
Για να ξεκινήσετε, ανοίξτε το αγαπημένο σας επεξεργαστής κειμένου. Η δημιουργία σχήματος βάσης δεδομένων δεν απαιτεί τίποτα περισσότερο από ένα αρχείο απλού κειμένου. Μια βάση δεδομένων αποτελείται από πολλούς πίνακες, καθένας αποτελείται από στήλες, και η σύνταξη CREATE TABLE χρησιμοποιείται για τη δημιουργία ενός μόνο πίνακα. Ακολουθεί ένα βασικό παράδειγμα:
ΔΗΜΙΟΥΡΓΙΑ χρηστών ΠΙΝΑΚΑΣ (
id ΔΕΝ ΜΠΟΡΕΙ,
is_active TINY INT ΔΕΝ NULL,
full_name VAR CHAR (100) ΟΧΙ NULL,
email VARCHAR (100) ΟΧΙ ΜΗΝ
);
Όπως μπορείτε να δείτε αυτό θα δημιουργήσει έναν πίνακα βάσης δεδομένων με το όνομα χρήστες που αποτελείται από τέσσερις στήλες. Αυτή θα πρέπει να είναι μια αρκετά απλή προς τα εμπρός δήλωση SQL ξεκινώντας από ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ, ακολουθούμενο από το όνομα των πινάκων της βάσης δεδομένων και, στη συνέχεια, σε παρένθεση οι στήλες του πίνακα χωρίζονται με κόμμα.
Χρησιμοποιήστε σωστούς τύπους στηλών
Όπως φαίνεται παραπάνω, οι στήλες στις οποίες θα αποτελείται ο πίνακας διαχωρίζονται με κόμματα. Κάθε ορισμός στήλης αποτελείται από τα τρία ίδια μέρη:
ΤΥΠΟΣ COL_NAME [ΕΠΙΛΟΓΕΣ]
Το όνομα της στήλης, ακολουθούμενο από τον τύπο στήλης και, στη συνέχεια, τυχόν προαιρετικές παραμέτρους. Ακολουθούμε τις προαιρετικές παραμέτρους αργότερα, αλλά εστιάζοντας στον τύπο της στήλης, παρακάτω παρατίθενται οι πιο συχνά χρησιμοποιούμενοι τύποι στηλών:
Για όλες τις προθέσεις, οι παραπάνω τύποι στηλών είναι το μόνο που χρειάζεστε για να γράψετε καλά κατασκευασμένα σχήματα βάσεων δεδομένων mySQL.
Ορισμός επιλογών στήλης
Κατά τον ορισμό των στηλών υπάρχουν επίσης διάφορες επιλογές που μπορείτε να καθορίσετε. Παρακάτω είναι ένα άλλο παράδειγμα του ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ δήλωση:
ΔΗΜΙΟΥΡΓΙΑ χρηστών ΠΙΝΑΚΑΣ (
id ΔΕΝ ΜΠΟΡΕΙ ΝΟΜΟ ΠΡΩΤΟΒΟΥΛΙΟ ΚΛΕΙΔΙ ΑΥΤΟΚΙΝΗΤΟ,
όνομα χρήστη VARCHAR (100) ΔΕΝ ΜΟΝΟ ΜΟΝΑΔΙΚΟ,
κατάσταση ENUM («ενεργό», «ανενεργό») ΔΕΝ NULL DEFAULT «ενεργό»,
υπόλοιπο ΔΕΙΚΤΗΣ (8,2) ΔΕΝ NULL DEFAULT 0,
date_of_birth DATETIME,
δημιουργήθηκε_το TIMESTAMP ΟΧΙ ΜΗΝ ΟΡΙΣΜΕΝΟ CURRENT_TIMESTAMP
);
Τα παραπάνω μπορεί να φαίνονται λίγο τρομακτικά, αλλά δεν ανησυχώ, είναι αρκετά απλό. Κατανεμημένα, αυτό συμβαίνει στην παραπάνω δήλωση:
- Πρέπει πάντα να χρησιμοποιείτε ΔΕΝ NULL σε όλες τις στήλες που είναι δυνατές για να βοηθήσετε στην ταχύτητα και την απόδοση του πίνακα. Αυτό απλώς καθορίζει ότι η στήλη δεν μπορεί να μείνει κενή / μηδενική όταν εισάγεται μια σειρά.
- Προσπαθείτε πάντα να διατηρείτε το μέγεθος της στήλης όσο το δυνατόν πιο ρεαλιστικό, καθώς συμβάλλει στη βελτίωση της ταχύτητας και της απόδοσης.
- ο ταυτότητα Η στήλη είναι ακέραιος, είναι επίσης το πρωτεύον κλειδί του πίνακα που σημαίνει ότι είναι μοναδικό και θα αυξάνεται κατά ένα κάθε φορά που εισάγεται μια εγγραφή. Αυτό θα πρέπει γενικά να χρησιμοποιείται σε όλους τους πίνακες που δημιουργείτε, ώστε να μπορείτε εύκολα να αναφέρετε οποιαδήποτε μεμονωμένη σειρά μέσα στον πίνακα.
- ο κατάσταση Η στήλη είναι ENUM και πρέπει είτε να έχει τιμή "ενεργό" είτε "ανενεργό". Εάν δεν έχει καθοριστεί τιμή, μια νέα σειρά θα ξεκινήσει με την κατάσταση "ενεργή".
- ο ισορροπία Η στήλη ξεκινά από το 0 για κάθε νέα σειρά και είναι ένα ποσό που διαμορφώνεται δύο δύο δεκαδικά ψηφία.
- ο Ημερομηνια γεννησης Η στήλη είναι απλώς μια ΗΜΕΡΟΜΗΝΙΑ αλλά επιτρέπει επίσης μια μηδενική τιμή καθώς η ημερομηνία γέννησης μπορεί να μην είναι γνωστή κατά τη δημιουργία.
- Τελευταίο, το δημιουργήθηκε_at Η στήλη είναι TIMESTAMP και προεπιλογή στην τρέχουσα ώρα κατά την εισαγωγή της σειράς.
Τα παραπάνω είναι ένα παράδειγμα ενός όμορφα δομημένου πίνακα βάσης δεδομένων και θα πρέπει να χρησιμοποιηθούν ως παράδειγμα για το μέλλον.
Ένα από τα μεγαλύτερα πλεονεκτήματα της χρήσης σχεσιακών βάσεων δεδομένων όπως mySQL είναι η άριστη υποστήριξή του για περιορισμούς στο ξένο κλειδί και με υπερχείλιση. Αυτό συμβαίνει όταν συνδέετε δύο πίνακες μαζί με μια στήλη, σχηματίζοντας μια σχέση γονικού παιδιού, οπότε όταν διαγράφεται η γονική σειρά, οι απαραίτητες θυγατρικές σειρές διαγράφονται επίσης αυτόματα.
Ακολουθεί ένα παράδειγμα:
ΔΗΜΙΟΥΡΓΙΑ χρηστών ΠΙΝΑΚΑΣ (
id ΔΕΝ ΜΠΟΡΕΙ ΝΟΜΟ ΠΡΩΤΟΒΟΥΛΙΟ ΚΛΕΙΔΙ ΑΥΤΟΚΙΝΗΤΟ,
όνομα χρήστη VARCHAR (100) ΔΕΝ ΜΟΝΟ ΜΟΝΑΔΙΚΟ,
ονοματεπώνυμο VARCHAR (100) ΟΧΙ NULL,
δημιουργήθηκε_το TIMESTAMP ΟΧΙ ΜΗΝ ΟΡΙΣΜΕΝΟ CURRENT_TIMESTAMP
) κινητήρας = InnoDB;
ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΩΝ παραγγελιών (
id ΔΕΝ ΜΠΟΡΕΙ ΝΟΜΟ ΠΡΩΤΟΒΟΥΛΙΟ ΚΛΕΙΔΙ ΑΥΤΟΚΙΝΗΤΟ,
userid INT NOT NULL,
ποσό ΔΕΙΚΤΙΚΟ (8,2) ΟΧΙ ΜΗΝ,
product_name VARCHAR (200) ΔΕΝ NULL,
ΚΛΕΙΔΙΟ ΕΞΩΤΕΡΙΚΟΥ (userid) ΑΝΑΦΟΡΕΣ χρήστες (id) ΣΤΗ ΔΙΑΓΡΑΦΗ CASCADE
) κινητήρας = InnoDB;
Θα παρατηρήσετε τον όρο ΞΕΝΟ ΚΛΕΙΔΙ ως την τελευταία γραμμή. Αυτή η γραμμή δηλώνει απλώς ότι αυτός ο πίνακας περιέχει θυγατρικές σειρές που συνδέονται με το ταυτότητα χρήστη στη στήλη της γονικής τους, που είναι η ταυτότητα στήλη του χρήστες τραπέζι. Αυτό σημαίνει ότι, κάθε φορά που μια σειρά διαγράφεται από το χρήστες πίνακα, η mySQL θα διαγράψει αυτόματα όλες τις αντίστοιχες σειρές από το παραγγελίες Πίνακας που βοηθά στη διασφάλιση της δομικής ακεραιότητας στη βάση δεδομένων σας.
Σημειώστε επίσης το κινητήρας = InnoDB στο τέλος της παραπάνω δήλωσης. Παρόλο που το InnoDB είναι τώρα ο προεπιλεγμένος τύπος πίνακα mySQL, δεν ήταν πάντα, οπότε αυτό πρέπει να προστεθεί μόνο για να παραμείνει στην ασφαλή πλευρά, καθώς το cascading λειτουργεί μόνο με πίνακες InnoDB.
Σχεδιασμός με εμπιστοσύνη
Είστε πλέον καλά στο δρόμο για τη δημιουργία στερεών, καλά δομημένων σχημάτων βάσεων δεδομένων mySQL. Χρησιμοποιώντας τις παραπάνω γνώσεις, μπορείτε τώρα να γράψετε καλά οργανωμένα σχήματα που παρέχουν τόσο απόδοση όσο και δομική ακεραιότητα.
Με το σχήμα σας στη θέση του, βεβαιωθείτε ότι γνωρίζετε πώς να το χρησιμοποιήσετε με αυτά βασικές εντολές SQL.
Μάθετε πώς να χρησιμοποιείτε τις συνδέσεις SQL για να βελτιώσετε τα ερωτήματα, να εξοικονομήσετε χρόνο και να σας κάνει να αισθανθείτε σαν χρήστης ισχύος SQL
- Απροσδιόριστος
Εγγραφείτε στο Newsletter μας
Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Ένα ακόμη βήμα…!
Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.