Consiglio per struttura Categorie

  • Creatore Discussione Creatore Discussione gatube
  • Data di inizio Data di inizio

gatube

Nuovo Utente
19 Apr 2008
2
0
0
Ciao,
premetto che sono un grafico, chi volesse aiutarmi prego usare linguaggio a prova di scemo.

Ho delle macrocategorie ad esempio (perdonate l'esempio):
- Libri grandi
- Libri medi
- Libri piccoli

poi ho delle subcategorie:
- rossi
- gialli
- verdi

Le subcategorie possono essere in comune a più macrocategorie:
- Libri grandi > rossi
- Libri medi > rossi

per non dover ripetere per ogni macro tutte le subcategorie ho adottato due tabelle:
MACROCATEGORIE
- id
- categoria

SUBCATEGORIE
- id
- categoria
- parents

dove "parents" è di tipo SET e contiene gli id delle macrocategorie ('1','2','3')
In questo modo non vincolo le sub alle macro.
Se volessi recuperare tutti i libri rossi indipendentemente dalle dimensioni, posso farlo

Fino a qui vorrei sapere se questa è la soluzione migliore.

======================================

Poi ho inserito nella mia pagina di insert/edit un "dependent dropdown" (dreamweaver developer toolbox)

query per il dropdown "macro" (master)
"SELECT m.id, m.categoria FROM macro m"
query per il dropdown "sub" (dettaglio)
"SELECT m.id, m.categoria, s.id, s.categoria, FROM macro m, sub s WHERE FIND_IN_SET(m.id, s.parents) > 0"

Sembra che funzioni tutto ma:
in fase di editing di un record, poniamo che recupero un prodotto sotto la voce:
Libri medi > rossi (i rispettivi id scritti nel database sono giusti)

il menu "macro" mi da "Libri grossi"
in pratica con macro che hanno sub in comune prevale quella con id più basso

======================================

Sperando di non aver stordito nessuno spero in un aiuto
vi ringrazio e saluto
gatube
 
non ho capito il tuo livello di preparazione, però se usi una query con WHERE dovresti cavartela...
tipo SELECT * FROM $_GET[libri] WHERE $_GET[formato]
una cosa del genere...
ciao
 
con quella query, se non erro, recuperi solo una coppia macro/sub.
nel mio caso sia in fase di inserimento, editing o ricerca necessito siano presenti tutte in 2 dropdown menu con il secondo popolato dinamicamente.
Nel caso reale ho 6 macro e 50 sub. tenedo conto che molte sub compaiono sotto più macro, la query che ho impostato sembra funzionare
perchè restituisce 90 righe corrispondenti alle varie accoppiate. ho controllato e ci sono tutte quelle che mi aspettavo.

ora:
il mio approccio a php/mysql è del tutto istintivo, cerco di applicare il buon senso ma non ragiono da analista/programmatore, non ho idea se l'impostazione che ho dato (struttura tabelle e relative query) sia la più adatta.

Comunque, il problema più grosso è far funzionare quel maledetto "dependent drop down menu".
Come già ho detto nel caso di stessa sub appartenete a più macro quando sono nello schermo di editing, per cui sul recupero dei dati, mi da sempre la macro che incontra per prima.
es.
- Libri grandi > rossi
- Libri medi > rossi
- Libri piccoli > rossi
ammettiamo che dal database arrivino gli ID per restituire piccoli/rossi, a video vedo grandi/rossi e cosa che più mi sconvolge se analizzo il source della pagina ho il "selected" al posto giusto.
Il problema sta nello script js che gestisce il menu e che prevale sul source, non digerisce la "poligamia" delle sub.

Può essere una soluzione, secondo te, servimi di una tabella temporanea generata dalla mia query nella quale concatenare IDmacro con IDsub al fine di ottenere 90 ID unici?

Grazie
Ciao
 

Discussioni simili