Προς το περιεχόμενο

Rails dynamic model


Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους ,

 

Όταν μια εφαρμογή δίνει την δυνατότητα στον χρήστη να εισάγει δικές του κολώνες σε μια βάση πως επιτυγχάνεται αυτό ? Δηλαδή λέει ο χρήστης θέλω να προσθέσω μια κολώνα τύπου customer_Ref_no τυπου text και μήκος 40.

 

Αυτό που σκέφτομαι είναι το εξής

 

FIELD

-------------------------------------

ID NAME TYPE LENGTH HELPER FACTORY

 

όπου όλα είναι text

 

και το οποιο μετά συνδέεις στον πίνακα την τιμή που βάζουν

 

MAIN_ENTITY

------------------------------------

ID FIELD_ID VALUE

 

 

ΜΑΙΝ_ΕΝΤΙΤΥ_DOCS

------------------------------------

ID FIELD_ID VALUE

 

Δηλαδή ουσιαστικά το μοντέλο αντί για fixed πίνακες ουσιαστικά κρατάει metadata του πίνακα...

 

Είναι λογικό το συγκεκριμένο approach ? ποια πιστέυετε ότι μπορεί να είναι μια πιθανή λύση

Φοβάμαι το complexity όσον αφορά το presentation και την επεξεργασία αργότερα για αποθήκευση κτλ Ιδιαίτερα αν χρησιμοποιείται καποιο ORM.

 

 

Ένα approach που έχω δει να έχεις εναν πίνακα με 100 κολώνες column1...100 και να ξέρει το application η τιμή τι ρόλο βαράει η κάθε κολωνα (πάλι με metadata) .Tα data όμως αποθηκευονται σε γραμμές.

Δημοσ.

Είναι λογικό στα χαρτιά, στην πράξη άγνωστο. Εξαρτάται από πάρα πολλές λεπτομέρειες του συστήματος και του πώς χρησιμοποιείται.

 

Υπάρχουν πολλές πιθανές προσεγγίσεις, οι περισσότερες ακούγονται τραγικές εκ πρώτης όψης αλλά εδώ είμαστε σε χωράφια που η όψη δε μετράει για τίποτα και η απόφαση πρέπει να παρθεί με 100% πρακτικά κριτήρια:

  • Να αλλάζει το σχήμα του πίνακα δυναμικά (θέλει ο χρήστης καινούρια κολώνα? βάλτην)
  • Να αποθηκεύεις τα δεδομένα νέας κολώνας σε δικό της πίνακα βάζοντας join table(s) για να τα αντιστοιχήσεις με τα αρχικά
  • Να τα βάλεις σε κάποια αδιαφανή serialized μορφή σε γενικής χρήσης κολώνα
  • Να τα βάλεις σε άλλου είδους data store
Δημοσ.

Defacer σε ευχαριστώ για τον χρόνο σου ... τέλικα μάλλον κατέληξα στο approach παίρνωντας παράδειγμα απο το mantis bug tracker εδώ . Χρησιμοποιεί την λογική που περιέγραψα πιο πάνω οπότε μάλλον θα παίξω με το συγκεκριμένο approach .

Δημοσ.

Όταν μια εφαρμογή δίνει την δυνατότητα στον χρήστη να εισάγει δικές του κολώνες σε μια βάση πως επιτυγχάνεται αυτό ? Δηλαδή λέει ο χρήστης θέλω να προσθέσω μια κολώνα τύπου customer_Ref_no τυπου text και μήκος 40..

 

Έχοντας μάθει προγραμματισμό την εποχή που οι Ελ ορολογίες ήταν από ανύπαρκτες εώς μπανάλ, αυτό το κολώνες μου κάθεται κάπως ... βαρύ.  :blink:

Για να απαντήσω και στο ερώτημα, δες αυτό: http://en.wikipedia.org/wiki/Entity–attribute–value_model- έτσι δουλεύει το Magento π.χ.

Δημοσ.

Έχοντας μάθει προγραμματισμό την εποχή που οι Ελ ορολογίες ήταν από ανύπαρκτες εώς μπανάλ, αυτό το κολώνες μου κάθεται κάπως ... βαρύ. :blink:

 

Για να απαντήσω και στο ερώτημα, δες αυτό: http://en.wikipedia.org/wiki/Entity–attribute–value_model- έτσι δουλεύει το Magento π.χ.

Χαχαχα σωστός ... το περιέγραψα λιγο πάμε να ρίξουμε τούβλα φάση

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...