Για να δημιουργήσετε ένα αυτο- αναφορά πίνακα , θα αρχίσει με δύο πεδία , αριθμό ταυτότητας και αριθμό ταυτότητας γονέα . Σε αυτά τα πεδία , μπορείτε να προσθέσετε όποιες άλλες κατάλληλες για την εφαρμογή , όπως το όνομα , την περιγραφή , την τοποθεσία ή τον πληθυσμό . Για λόγους ευκολίας , μπορείτε να ορίσετε τον αριθμό ταυτότητας σε έναν τύπο πεδίου αυτόματης αρίθμησης , ώστε η βάση δεδομένων αυτόματα αριθμούς νέων εγγραφών σε αύξουσα σειρά . Η μητρική ID αναφοράς τον αριθμό ID της μητρικής ρεκόρ στην ιεραρχία ? Εφόσον η εγγραφή δεν έχει γονέας, μπορείτε να ορίσετε αυτό το πεδίο στο μηδέν . Για παράδειγμα, ο φάκελος για την Καλιφόρνια έχει ένα αναγνωριστικό μιας και η μητρική ID μηδέν . Το ρεκόρ για San Francisco County έχει μια ταυτότητα των δύο και η μητρική ID ενός . Κάθε εγγραφή των παιδιών στον πίνακα αναφοράς μητρική εγγραφές στο ίδιο τραπέζι ? Ο πίνακας είναι αυτο-συσχέτιση
εικόνων Ενοποίηση
Η
Ένα αποτέλεσμα της αυτοαναφοράς πίνακες είναι μια ενοποίηση . πολλαπλών πινάκων σε έναν ενιαίο πίνακα. Έχοντας λιγότερα τραπέζια απλοποιεί τη βάση δεδομένων και διευκολύνει τη συντήρησή του . Τα σύγχρονα συστήματα βάσεων δεδομένων φιλοξενήσει εύκολα εκατομμύρια δίσκους ανά τραπέζι , διατηρώντας έτσι όλα τα στοιχεία δεδομένων ενός ιεραρχίας σε έναν ενιαίο πίνακα δεν είναι ένα πρόβλημα . Με τον καθορισμό του πεδίου ID σε ένα πρωτεύον κλειδί και της μητρικής ταυτότητας σε ένα ευρετήριο , μπορείτε να εντοπίσετε εύκολα όλες τις εγγραφές κατά οποιοδήποτε υποκατάστημα της ιεραρχίας .
Η ευελιξία
Η
Μια βάση δεδομένων που έχει ένας πίνακας για κάθε επίπεδο σε μια ιεραρχία λειτουργεί καλά μέχρι να εμφανιστεί ένα νέο επίπεδο , καθώς θα πρέπει στη συνέχεια να προσθέσετε ένα νέο πίνακα για να φιλοξενήσει την αλλαγή και να τροποποιήσετε όλα τα προγράμματα εφαρμογών που χρησιμοποιούν τη βάση δεδομένων . Αντίθετα , μια αυτο- αναφορά πίνακα φιλοξενεί οποιοδήποτε αριθμό επιπέδων ιεραρχίας. Το πεδίο ID γονέας δείχνει πάντα στο επόμενο επίπεδο της ιεραρχίας , έτσι ώστε τα αρχεία αποτελούν ένα συνεκτικό αλυσίδα . Ο αριθμός των επιπέδων στην ιεραρχία μπορεί να είναι το ίδιο για όλες τις γονικές εγγραφές ή μπορεί να μεταβάλλεται ? Η αυτο - αναφορά πίνακα λαβές δύο περιπτώσεις
εικόνων Cascading Διαγραφή
Η
Όταν . πίνακα αυτο-συσχέτιση περιέχει πολλά αρχεία δεδομένων , μπορεί να αναρωτιέστε τι να κάνετε όταν διαγράψετε μια γονική ρεκόρ . Αν δεν έχετε , επίσης, να διαγράψετε όλα τα αρχεία του παιδιού , θα ενείχε τον κίνδυνο δημιουργίας « ορφανά », ή τα αρχεία με μη έγκυρα αναγνωριστικά γονέα . Ευτυχώς , υπάρχει ένας μηχανισμός για να χειριστεί αυτόματα την κατάσταση αυτή . Όταν δημιουργείτε το πεδίο γονέα ID , μπορείτε να καθορίσετε ότι έχει ένα πεδίο ξένου κλειδιού , και να χρησιμοποιήσετε το πεδίο ID ως το κύριο κλειδί του πίνακα . Αφού έχετε κάνει αυτό , μπορείτε να προσθέσετε τον περιορισμό , "ON DELETE CASCADE " στο πεδίο . Με τον περιορισμό και ρυθμίσεις των ξένων κλειδιών στη θέση του , η βάση δεδομένων θα διαγράψει όλες τις αντίστοιχες εγγραφές των παιδιών κάθε φορά που διαγράφετε ένα γονέα ρεκόρ .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα