MySQL nested set model

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

danielsen
Average Member
Mesaje: 143
Membru din: Sâm Feb 14, 2004 12:00 am
Localitate: Cluj-Napoca
Contact:

MySQL nested set model

Mesajde danielsen » Mar Dec 08, 2015 12:16 am

Am tot cautat dupa un model de query-uri complete de insert intr-o tabela cu model ierarhic nested model, introducerea intr-un nod cu copii sau intr-unul fara copii, dar nu am gasit nici un tutorial sau curs complet care sa imi arate cum se face. Cazuri de insert, update si delete dintr-un nod si care ar fi o metoda mai eficienta de lucru cu ele. Stie cineva vreo adresa?

Pana acum http://mikehillyer.com/articles/managin ... -in-mysql/ mi se pare cel mai clar, doar ca la insert as vrea sa rezolv totul din cel mult 2 interogari.



nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: MySQL nested set model

Mesajde nevvermind » Mar Dec 08, 2015 1:33 am

Vezi ca sunt mai multe modalitati, nu numai aia. Am folosit closure table si n-a fost asa rau: http://www.slideshare.net/billkarwin/mo ... hical-data

Ce nu ti-a iesit de vrei tutoriale?
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

danielsen
Average Member
Mesaje: 143
Membru din: Sâm Feb 14, 2004 12:00 am
Localitate: Cluj-Napoca
Contact:

Re: MySQL nested set model

Mesajde danielsen » Mar Dec 08, 2015 1:52 am

nevvermind scrie:Vezi ca sunt mai multe modalitati, nu numai aia. Am folosit closure table si n-a fost asa rau: http://www.slideshare.net/billkarwin/mo ... hical-data

Ce nu ti-a iesit de vrei tutoriale?


Stiu ca mai sunt posibilitati, dar eu folosesc datele intr-o tabela cu datatable plugin. Ce nu mi-a iesit a fost insert-ul intr-un nod fara copii sau cu copii, cumva imi trebuie un exemplu care verifica treaba asta, si mai multe alte cazuri. Acum 2-3 ani am avut o clasa PHP care rezolva toata treaba asta, dar nu o mai gasesc.

nevvermind
Senior Member
Mesaje: 1264
Membru din: Mar Iun 22, 2010 3:17 pm

Re: MySQL nested set model

Mesajde nevvermind » Mar Dec 08, 2015 12:24 pm

Pai, omule, da si tu tabelul, DDL-ul lui, niste dummy data din el, insertul pe care l-ai incercat etc. Stii tu.. detalii.
Facusi un canal de php pe freenode - ##php-ro : https://webchat.freenode.net/

danielsen
Average Member
Mesaje: 143
Membru din: Sâm Feb 14, 2004 12:00 am
Localitate: Cluj-Napoca
Contact:

Re: MySQL nested set model

Mesajde danielsen » Mar Dec 08, 2015 6:24 pm

nevvermind scrie:Pai, omule, da si tu tabelul, DDL-ul lui, niste dummy data din el, insertul pe care l-ai incercat etc. Stii tu.. detalii.


Exemplu:
am tabelele
`page`(page_id, page_active, lft, rgt) si
`page_content` (page_content_id, page_id, languageCode, title, etc)

Un insert intr-un nod cu copii (in `page`):

Cod: Selectaţi tot

LOCK TABLE page WRITE;
SELECT @myRight := rgt FROM page WHERE page_id = :page_id;
UPDATE page SET rgt = rgt + 2 WHERE rgt > @myRight;
UPDATE page SET lft = lft + 2 WHERE lft > @myRight;
INSERT INTO page (lft, rgt, page_active) VALUES (@myRight + 1, @myRight + 2, :page_active);
UNLOCK TABLES;

... pe urma introduc textele in `page_content`...

Cumva ar trebui verificat in selectul ala sau inainte daca :page_id (pagina parinte selectata) are sau nu copii asa incat sa pot face update-uri altfel, in lft. Asta fiind un caz, ca mai sunt, la reordonari, la stergerea unui nod, sau a unui parinte.


Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Bing [Bot] și 23 vizitatori