eT` Posted August 2, 2011 Report Posted August 2, 2011 Tāmm, ši nav problēma bet vairāk padiskutējama tēma. Ja Jums vajadzētu veidot dinamisku menu ( kategorija, apakškategorija, 3lvl utt. ) kā Jūs šos datus glabātu datubāzē? Man pašreizējā struktūra -topcat -- cat ( ar topcat_id relāciju ) --- subcat ( ar cat_id relāciju ) ---- subcats ( iekļaujas subcat tabulā atsevišķā laukā atdalītas ar komatu un saitā tiek explodotas ). šis pašlaik ir pēdējais līmenis. viss strādā bet ja gribētu pievienot vēl līmeni zemāk man visa struktūra hmm jāpārdomā. Quote
briedis Posted August 2, 2011 Report Posted August 2, 2011 (edited) Tabula: id | category | parent_id Kur category ir nosaukums, parent_Id ir vecāka kategorijas identifikators no tās pašas tabulas. Lai nebūtu ciklā jāsauc kvēriji, ir iespējams arī pievienot papildus lauku level, kur glabātu konkrētā ieraksta dziļumu, 1- top izvēlne, 2 - 2. līmenis utt. Tad, pēc izmaiņu veikšanas, izvēlne būtu "Jāsakārto" no jauna, tur gan izmantojot rekursiju. Tad, vienkārši atlasot visus ierakstus atliktu ar PHP vienā ciklā cauri izbraukt un atbilstoši izvadīt, balstoties uz līmeņa vērtību. Vēl labāk ir, ja ir papildus izvēlnes tabula, kur admins var "ķēpāties" un veidot izvēlnes struktūru, un, tiklīdz grib publicēt izmaiņas, tā tiek viss sakārtots un pārrakstīts orģinālajā izvēlnes tabulā jau ar atbilstošiem līmeņiem, Edited August 2, 2011 by briedis Quote
eT` Posted August 2, 2011 Author Report Posted August 2, 2011 ou! paldies. kapēc par šādu variantu nebiju iedomājies? relācijas var likt vienas tabulas ietvaros? Quote
Grey_Wolf Posted August 2, 2011 Report Posted August 2, 2011 relācijas var likt vienas tabulas ietvaros? Bez problēmām, piedevām daudzos risinājumos tas arī ir optimāli, ka piemēram šajā gadījumā. Quote
v3rb0 Posted August 3, 2011 Report Posted August 3, 2011 ar nested set - http://php.lv/f/topic/17637-menu-tree-the-nested-set-model/ Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.