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

 

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

The EntityData implementation

Îåêßíçóå áðü ôï ìÝëïò George Parissis. Τελευταία δημοσίευση από το μέλος George Parissis στις 07-04-2015, 11:07. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-04-2015, 06:47 76906

    The EntityData implementation

    Σύμφωνα με αυτό το post έχει φτιαχτεί ένα framework για data sync που παίζει σε Mobile Services.

    Αυτό που με προβληματίζει είναι η υλοποίηση που έχουν κάνει για το primary key στην class EntityData από την οποία θα πρέπει να κάνουν inherit όλα τα Entities. Το primary key έχει οριστεί σαν string.

    Καταλαβαίνω την λογική να μπορεί ο client σε offline mode να μπορεί να δημιουργεί primary keys αλλά με data type string; Δεν θα ήταν καλύτερο από θέμα απόδοσης να ήταν unique identifier data type; Έχουν δημιουργήσει τύπο string με length 125 χαρακτήρες. Δεν νομίζω ότι είναι μία σωστή προσέγγιση αυτή. Είμαι στην αρχή δημιουργίας εφαρμογής η οποία γνωρίζω από το παλαιότερο σύστημα ότι θα έχει κάποιες δεκάδες χιλιάδες εγγραφές ανά μήνα και με προβληματίζει πολύ έντονα αυτό το σημείο.

    Το πρόβλημα είναι πως ο TableController και το sync για να παίξει θα πρέπει τα Entities να κάνουν inherit από το EntityData δεν μπορώ να το αποφύγω. Μήπως δεν έχω καταλάβει κάτι σωστά; Μήπως τελικά δεν παίζει ρόλο να είναι string;

  •  05-04-2015, 09:15 76908 σε απάντηση της 76906

    Απ: The EntityData implementation

    Καλημέρα

    Την άποψη μου την έχω πει εδώ και καιρό με αυτό το post και δεν κάνω βήμα από αυτό. Επίσης έχω πολλά παραδείγματα από ένα περιβάλλον με 3.000 databases για το πόσο impact έχει.

    Αυτό που θα σε συμβουλέψω μιας και δεν μπορείς να το αποφύγεις καθώς καταλαβαίνω γιατί το θέλουν είναι να μην είναι clustered βάλε κάτι άλλο για clustered index ένα bigint θα έκανε δουλειά ή ακόμα καλύτερα ένα date ή ένα composite αν αυτό η λογική σου το επιτρέπει.

    Από εκεί και πέρα μια ακόμη συμβουλή εφόσον στο επιτρέπει η έκδοση του SQL Server και μιας όπως λες θα έχεις δεκάδες χιλιάδες εγγραφές ανά μήνα είναι να κάνεις table partitioning όχι φυσικά με αυτό αλλά με κάποιο date field.

    Δυστυχώς δεν μπορείς να χρησιμοποιήσεις ούτε την newsequentialid καθώς το GUID σε offline θα το δίνει ο client.

    Δεν έχω να πω κάτι άλλο ο Θεός μαζί σου.



    Antonios Chatzipavlis

  •  07-04-2015, 11:07 76926 σε απάντηση της 76908

    Απ: The EntityData implementation

    Ευχαριστώ Αντώνη.

    Και εμένα δεν μου αρέσει η υλοποίησή τους και είναι άξιο απορίας πως το έκαναν έτσι. 

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