Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Mysql, MyIsam ή InnoDb

Îåêßíçóå áðü ôï ìÝëïò Azular. Τελευταία δημοσίευση από το μέλος Azular στις 11-12-2009, 11:35. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  10-12-2009, 11:45 55820

    Mysql, MyIsam ή InnoDb

    Η MyIsam δεν έχει foreign key constrains (αντίθετα με την  InnoDb), παρόλα αυτά εγώ χτίζω τα σχετικά relations και constrains στο Dataset. Αυτό με καλύπτει ή να γυρίσω σε InnoDb όπου περιλαμβάνει τέτοιες δυνατότητες;
  •  10-12-2009, 21:35 55833 σε απάντηση της 55820

    Απ: Mysql, MyIsam ή InnoDb

    Είναι διαφορετικό πράγμα η υποστήριξη του referential integrity σε επίπεδο βάσης και σε επίπεδο εφαρμογής.

    Καταρχήν, αν είσαι σίγουρος ότι η πρόσβαση στα data θα γίνεται αποκλειστικά μέσω της εφαρμογής, τότε ενδεχομένως να τη γλυτώσεις. Ωστόσο, σε διαφορετική περίπτωση οδηγείσαι με μαθηματική ακρίβεια σε προβλήματα. Από την άλλη μεριά, πολύ συχνά ακόμα κι εμείς οι owners της εφαρμογής κάνουμε πατάτες όταν χτυπάμε τη βάση απευθείας και μας ζώσει το referential integrity.

    Στη συνέχεια, το referential integrity σε επίπεδο βάσης, δουλεύει άψογα όταν ερχόμαστε στο θέμα των transactions. Περιτό το να πούμε ότι αν δεν έχεις referential integrity δεν έχεις το C (consistnecy) από τα ACID properties, πράγμα που σημαίνει ότι δεν έχεις στην πράξη RDBMS. Επιπρόσθετα, στην εφαρμογή σου, θα πρέπει να χειρίζεσαι αυτές τις περιπτώσεις, πράγμα καθόλου εύκολο. Σκέψου ένα απλοϊκό παράδειγμα: Σβήνεις έναν πελάτη και τις παραγγελίες του, μια διαδικασία δύο βημάτων. Αν κάνεις το πρώτο και πριν προλάβεις να κάνεις το δεύτερο συμβεί ένα καταστροφικό γενονός, κοινώς "πέσει ο server", όταν τελικά θα επανέλθει, θα έχεις inconsistent data (λογικώς, μη ορθά δεδομένα). Με ένα καθώς πρέπει transactional σύστημα δεν θα είχες τέτοιο πρόβλημα αλλά και δεν χρειάζεται να γράψεις τρελλό κώδικα για να πιάσεις τέτοιες περιπτώσεις, πέρα από το handle του exception.

     


    Vir prudens non contra ventum mingit
  •  11-12-2009, 11:35 55840 σε απάντηση της 55833

    Απ: Mysql, MyIsam ή InnoDb

    Άρα τότε πάμε για InnoDB. Διαβάζω ότι η MyIsam δεν έχει τέτοιες δυνατότητες (referential integrity).
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems