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

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

Δημοσ.

Εδώ και λίγες μέρες προσπαθώ να βρω πως μπορώ να φτιάξω ένα php script που να χειρίζομαι το crud ενός μενού. Από ένα search στο google 2 μοντέλα που μπορεί να πραγματοποιηθεί αυτό.
 

Tο adjaceny model το οποίο είναι πιο εύκολο να υλοποιηθεί, ωστόσο υστερεί στο ότι χειρίζεται μενού 2 επιπέδων

 

Tο δε'υτερο μοντέλο, για το οποίο και ενδιαφέρομαι, είναι το  Nested Sets (MPTT), το οποίο χειρίζεται μενού ν- επιπέδων, αλλα από ότι έχω καταλάβει είναι και το πιο δύσκολο να υλοποιηθεί (κυρίως το INSERT & UPDATE).

 

Υπάρχει κάποιο σχετικό βοήθημα - οδηγός για το πώς μπορώ να φτιάξω ένα php script που να το χειρίζεται? ή ακόμα και κάποιο έτοιμο script ή library που να είναι έυκολο να το προσαρμόσω

Δημοσ.

Γιατί θεωρείς ότι το adjacency model χειρίζεται μόνο 2 επίπεδα?

 

Δεν μιλάμε για μια τέτοια δομή?

 

cat_id -- cat_name -- parent_id

http://sqllessons.com/categories.html

 

που βέβαια μπορεί να έχει όσα επίπεδα θες. Θεωρητικά, είναι πιο αργό αλλά όλα είναι σχετικά με τις ανάγκες και την υλοποίηση. Εδώ έχει μια ωραία ανάλυση όσον αφορά τη MySql

explainextended.com/2009/09/29/adjacency-list-vs-nested-sets-mysql/

 

Για μια ιδέα του πως χειρίζεσαι το nested sets ρίξε μια ματιά εδώ,

http://stackoverflow.com/questions/16999530/how-do-i-format-nested-set-model-data-into-an-array#answer-16999852

και πάλι όμως υπάρχει recursion, δεν ξέρω αν υπάρχει κάποια καλύτερη λογική.

 

Εγώ χωρίς κάποια ιδιαιτερότητα που πιθανώς θα έβαζε πιο συγκεκριμένες προδιαγραφές, θα προτιμούσα την πρώτη (adjacency model) περίπτωση και πιθανώς θα σκεφτόμουν ένα maintenance function που θα ενημερώνει ένα πίνακα

category_id -- subcategories_ids

για γρήγορες επιλογές στις αναζητήσεις τύπου WHERE IN (1,2,3)

Δημοσ.

Γιατί θεωρείς ότι το adjacency model χειρίζεται μόνο 2 επίπεδα?

 

Δεν μιλάμε για μια τέτοια δομή?

 

cat_id -- cat_name -- parent_id

http://sqllessons.com/categories.html

 

που βέβαια μπορεί να έχει όσα επίπεδα θες. Θεωρητικά, είναι πιο αργό αλλά όλα είναι σχετικά με τις ανάγκες και την υλοποίηση.

 

Ναι έχεις δίκιο, εγώ έκανα λάθος διατύπωση και δεν εννοώ τη δομή που ανέφερες. Αυτό που δυσκολεύομαι να κατανοήσω πχ όταν κάνω εισαγωγή μία νεας κατηγορίας, όπως λες στο παράδειγμά σου, πώς θα αλλάζουν οι τιμές στα 'left' και  'right' πεδία του πίνακα, χωρίς να χαλάει πουθενά η δομή.

Δημοσ.

Σε κάθε μία νέα κατηγορία, μάλλον θα πρέπει να ξαναφτιάξεις τα id και τα left right όλων, διαφορετικά δεν θα λειτουργήσει. Εν τω μεταξύ, αν το routing σου περιλαμβάνει το id της κατηγορίας, πχ tade.gr/category/12 και όχι slug, έχεις πρόβλημα γιατί τα link που καταγράφονται θα οδηγούν σε άλλες κατηγορίες κάθε φορά - εκτός αν έχεις ένα επιπλέον πεδίο σε κάθε κατηγορία για τα relations μεταξύ τους που το κάνει ακόμα πιο μπερδεμένο.

 

Πάντως δεν το ξέρω καλά αυτό το structure γιατί δεν το χρησιμοποιώ, πιθανότατα λέω κάτι λάθος ή γίνεται πιο εύκολα από όσο μπορώ να φανταστώ.

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

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

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

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

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

Σύνδεση

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

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