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

 

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

object to SQL type?

Îåêßíçóå áðü ôï ìÝëïò Βασιλειάδης Σπύρος. Τελευταία δημοσίευση από το μέλος Βασιλειάδης Σπύρος στις 16-09-2010, 10:39. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  26-08-2010, 10:59 59754

    object to SQL type?

    Έχω ένα προβληματισμό σχεδιαστικο σε ένα σημείο κώδικά και θα ήθελα τις απόψεις σας και τισ γνώσεις σας. Το υποσύστημα(χρησιμοποιείται .ΝΕΤ ver 2).. παραλαμβάνει από διάφορα άλλα συστήματα (και αυτά .NET) inctances από ένα συγκεκριμένο type. To type Α αυτό έχει διάφορα properties (είναι τύπος για data tranfer).. ένα από αυτά είναι τύπου object γιατί ακριβώς μπορεί στην πραγματικότητα να είναι οποιοσδήποτε τύπος... Αυτόν τον τύπο Α θέλω να το σώσω σε έναν πίνακα.. και ενώ για όλα τα properties έχω χρησιμοποίησει τον κατάλληλο τύπο SQL που θα έχει η στήλη δεν μπορώ να βρώ σε τί SQL τύπο να σώσω το τύπο object. Ο .ΝΕΤ τύπος που θα φιλοξενείται σε αυτή την στήλη μπορεί να είναι οτιδήποτε από int και string μέχρι και complex data type. Αμφιταλαντεύομαι στους τύπους varbinary, nvarchar, ntext, image. Δεν έχω πρόβλημα χώρου.. τα objects δηλαδή οι τιμές της στήλης θα είναι μικρά. Επιπλέον αυτή η στήλη όταν θα φορτώνεται από την βάση στην μνήμη θα πρέπει να είναι "ίδια" η τιμή γιατί συμμετέχει ώς αναγνωριστικό για να ξεχωρίσω άν το object έχει ξανάσερβιριστεί από τα άλλα συστημάτα οπότε να το σώσω ή να μην το σώσω.

    Ποιό sql τύπο θεωρείται τον καταλληλότερο για αυτή την δουλειά;

    Ευχαριστώ.

  •  26-08-2010, 11:48 59755 σε απάντηση της 59754

    Απ: object to SQL type?

    Πιστεύω ότι καταλαβαίνεις ότι ζητάς να κάνεις persist ένα object (αποθήκευση με ταυτόχρονη διατήρηση του state του object) μέσα στην βάση - δηλαδή το object σου πρέπει να είναι serializable για να μπει σε μια στήλη γραμμής πίνακα.

    Από εκεί και μέρα, ανάλογα με το ποιος τύπος είναι καλύτερος για σένα, XML ή binary, θα πρέπει να διαλέξεις και τον τύπου που θα έχει η βάση, ntext ή varbinary.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  26-08-2010, 12:07 59756 σε απάντηση της 59755

    Απ: object to SQL type?

    ναι ουσιαστικα το πρόβλημα αναγεται στο να κάνει serialize to object... που δεν εχει να κάνει τόσο με την βάση.. είναι γενικότερο θέμα του κάνω κάτι serialize και μετά desirialize και συγκρίνω.. και αυτό ειναι ένα θέμα απο μόνο του ακόμα και όταν δουλέυεις μόνο στην μνήμη. Ουσιαστικά το ερώτημα είναι ποιος τυπός είναι ο ποιο γενικός ο ποίο abstract αυτός που η παρεμβολή του SQL δεν θα βάλει επιπλέον πολυπλοκότητα στο παραπάνω θέμα του serialize deserialize kai compare. Εννοω μήπως κάποιο τύπος θα μου κάνει κάποια αλλαγή είτε στην βάση είτε την ώρα που περνάει από ADO στο πίσω μπρος. πχ. φοβαμαι μήπως το ntext επηρεάζεται από encoding και culture.. δεν ξέρω.. γιαυτο ρωτάω την γνώμη ποιός είναι ο ποίο γενικός τύποσ SQL. ή από την άλλη αν το binary δεν είναι searchable.. η αν δεν μπορουν να σωθούν περιέργοι τυποι όπως GUID ή εικόνες JPEG (ναι είναι τρελές οι προδιαγραφές)
  •  26-08-2010, 12:51 59758 σε απάντηση της 59755

    Απ: object to SQL type?

    Eπειδή το θέμα το είχα αντιμετωπίσει στο πρόσφατο παρελθόν θα συμφωνήσω εν μέρει με το Γιώργη ως προς το ένα datatype και θα το προχωρούσα σε varbinary(max) αν το ήθελα σε binary το ntext δεν είναι ότι καλύτερο. Θα σε συμβούλευα όμως να το κάνει σε xml serialization και να το βάλεις σε xml datatype στον sql server, μπορεί να έχει μια ιδιαιτερότητα στην διαχείρηση του αλλά είναι αρκετά καλύτερο κατά την ταπεινή μου γνώμη για αυτό που θέλεις να κάνεις.

     


    Antonios Chatzipavlis

  •  16-09-2010, 10:39 60032 σε απάντηση της 59758

    Απ: object to SQL type?

    Το varbinary(max) δουλεψε μεχρι στιγμής στις περιπτώσεις που δοκιμάστηκαν

    ευχαριστώ τους συναδέλφους

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems