Jump to content
php.lv forumi

Lapas struktuura


azpage

Recommended Posts

Kaads vareetu paskaidrot kaa tiek veidots, lai staigaajot pa lapaam paraada cik dzilji dotajaa briidii lapaa adrodies, kaa tas ir lapaa www.em.gov.lv. Kaa lai panaak "Sākumlapa > Nozaru informācija > Tirdzniecība > Ārējā tirdzniecība > Latvijas ārējās tirdzniecības politika > Brīvās tirdzniecības režīms".

 

Jau ieprieksh paldies par paliidziibu

Link to comment
Share on other sites

viens variants:

pieņemot, ka viss tiek glabāts datubāzē un pie raksta vēršas pēc ID, tad tabula satur šādus laukus (varbūt vairāk, bet tas ir ārpus šī jautājuma apspriešanas):

ID

ParentID

 

Pieņemsim, ka ir šādi ieraksti:

ID = 1

ParentID = 0

 

ID = 2

ParentID = 1

 

ID = 3

ParentID = 1

 

ID = 4

ParentID = 2

 

ID = 5

ParentID = 4

 

Tad izvēloties ierakstu ar ID = 5, mēs varam notiekt, ka virs viņa ir ID = 4, virs kura ir ID = 2, virs kura ir ID = 1, kuram augstāka vairs nav (pieņemsim, ka ParentID = 0 nozīme, ka augstāka neviena nav).

Edited by Aleksejs
Link to comment
Share on other sites

Paldies par variantu. Bija ienacis kas lidziigs praataa, tachu tur jaizpilda daudz queriji, vai taadaa veidaa lapa nestraadaas leeni? Jo tak ja ieiet 5 dzijuma liimenii, tad jaizpilda jau ir vismaz 4 queriji.

Edited by azpage
Link to comment
Share on other sites

Ir, ir daudz kveriji, pie kam vēl rekursija ;)

Nu, ja vajag ātrāk un esi gatavs ziedot nedaudz vietas, var arī šādu variantu:

divas tabulas: docs, rels.

docs satur:

ID

depth

 

rels satur:

DocID

ParentID

 

tas pats piemērs, kas iepriekš:

docs:

ID = 1

depth = 0

 

ID = 2

depth = 1

 

ID = 3

depth = 1

 

ID = 4

depth = 2

 

ID = 5

depth = 3

 

rels:

DocID = 2

ParentID = 1

 

 

DocID = 3

ParentID = 1

 

 

DocID = 4

ParentID = 2

 

DocID = 4

ParentID = 1

 

 

DocID = 5

ParentID = 4

 

DocID = 5

ParentID = 2

 

DocID = 5

ParentID = 1

 

Tagad tie daudzie vaicājumi ir jāizdara pie pievienošanas, savukārt atlasīšana notiek ar:

SELECT * FROM rels, docs WHERE DocID = x AND ParentID = DocID ORDER BY depth

 

Kaut kā tā.

 

Bet pieļauju, ka var kaut kā vienkāršāk && efektīvāk.

Link to comment
Share on other sites

Paldies par variantu. Bija ienacis kas lidziigs praataa, tachu tur jaizpilda daudz queriji, vai taadaa veidaa lapa nestraadaas leeni? Jo tak ja ieiet 5 dzijuma liimenii, tad jaizpilda jau ir vismaz 4 queriji.

ja svarīga ir ātrdarbība, tad var uztaisīt joku, ka ir kāds skripts, kas pie izmaiņām uzģenerē šo ceļu un saglabā viņu atsevišķā laukā. Tas ir, to rekursiju taisa nevis pie lapas ģenerēšanas, bet gan pie informācijas saglabāšānas.

Link to comment
Share on other sites

Interesanti, bet kaapeec gan tajaa pashaa www.em.gov.lv lapaa ir doci, kam id ir 4 un doki, kam 1854 - nu diez vai tur ir n-tie tuukstoshi doci? Kaa vinji to njem?

Man vispaar tagad ir liidziiga probleema un man interesee vairaak:

Kaa var optimaali uztaisiit navigaaciju par liimenjiem, piemeeram (katrs naakamais cipars ir naakamaa liimenja numurs):

 

links 1

links 11

links 12

links 121

links 13

links2

links 3

 

utt.

 

Tachu! Man vajag lai peec tam tos linkus var viegli paarvietot vertikaali (ne pa liimenjiem, bet tiiri vertikaali, lai piemeeram, links 12 var uzlikt virs links 11). Varbuut jaataisa papildus parametrs order!

zem katra linka savs docs! Kaads zin, kaa optimaali taisiit datubaazee?

Edited by Robis
Link to comment
Share on other sites

×
×
  • Create New...