Nested set publiceren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • xantos
  • Registratie: Juni 1999
  • Niet online
Ik ben bezig met een PHP/Symfony project waarin ik het 'Nested Set' model gebruik voor een boomstructuur van een CMS. Nu wil ik deze boomstructuur ook kunnen publiceren (incl. structuur) naar een zelfde soort 'Nested Set' tabel (voor gepubliceerde items).

Ben eigenlijk benieuwd hoe jullie zoiets zouden aanpakken. Als ik een item verplaats in de boom dan wijzigen meerdere volgorde id's (lft,rgt) van meerdere records. Hoe bij te houden welke items gepubliceerd dienen te worden.

Er is veel info over Nested Sets te vinden maar bovenstaand probleem ben ik nog niet tegengekomen.

[ Voor 3% gewijzigd door xantos op 04-04-2010 15:11 ]


Acties:
  • 0 Henk 'm!

  • Y0ur1
  • Registratie: Oktober 2000
  • Niet online
Waarom verplaatsen naar een andere tabel? Je kan toch een veld erbij maken in je structuur tabel met gepubliceerd? Of mis ik iets?

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
xantos schreef op zondag 04 april 2010 @ 14:45:
Ik ben bezig met een PHP/Symfony project waarin ik het 'Nested Set' model gebruik voor een boomstructuur van een CMS. Nu wil ik deze boomstructuur ook kunnen publiceren (incl. structuur) naar een zelfde soort 'Nested Set' tabel (voor gepubliceerde items).
Je hebt bij iedere node een flagje al dan niet publiceren (indien de node erboven ook gepubliceerd is), en wilt dan een nieuwe tabel genereren? :?
Ben eigenlijk benieuwd hoe jullie zoiets zouden aanpakken. Als ik een item verplaats in de boom dan wijzigen meerdere volgorde id's (lft,rgt) van meerdere records. Hoe bij te houden welke items gepubliceerd dienen te worden.

Er is veel info over Nested Sets te vinden maar bovenstaand probleem ben ik nog niet tegengekomen.
Dit is weer een ander probleem denk ik dat losstaand van hierboven? Het lijkt me dat dit gewoon verwijderen en toevoegen in een is, niet zo spannend lijkt me? (Eventueel kun je wel bepaalde dingen samenvoegen). Enkel als dat vaak voorkomt moet je je afvragen waarom je 'nested set' als model gebruikt, en niet gewoon 'adjacency list'.

[ Voor 4% gewijzigd door pedorus op 04-04-2010 16:08 . Reden: linkje naar blog crisp ]

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Je kunt ook een combi gebruiken, van nested set en adjacency list. Doe ik normaal ook. Ik gebruik de adjecency list wanneer die handig is, zoals in deze situaties en nested set wilt nogal eens fout gevoelig zijn. Daarvoor gebruik ik de adjecency list gewoon als backup.

Dus voeg een kolom parent_id toe.

Acties:
  • 0 Henk 'm!

  • xantos
  • Registratie: Juni 1999
  • Niet online
Y0ur1 schreef op zondag 04 april 2010 @ 15:20:
Waarom verplaatsen naar een andere tabel? Je kan toch een veld erbij maken in je structuur tabel met gepubliceerd? Of mis ik iets?
Ja, misschien was ik niet helemaal duidelijk. Het lijkt me niet vreemd dat je in een CMS je structuur wilt omgooien maar dat je deze nog niet wilt publiceren. Je gepubliceerde structuur kan dus anders zijn dan je edit-structuur.
pedorus schreef op zondag 04 april 2010 @ 16:03:
[...]

Je hebt bij iedere node een flagje al dan niet publiceren (indien de node erboven ook gepubliceerd is), en wilt dan een nieuwe tabel genereren? :?
Nee zie boven- en onderstaand antwoord.
eghie schreef op zondag 04 april 2010 @ 16:11:
Je kunt ook een combi gebruiken, van nested set en adjacency list. Doe ik normaal ook. Ik gebruik de adjecency list wanneer die handig is, zoals in deze situaties en nested set wilt nogal eens fout gevoelig zijn. Daarvoor gebruik ik de adjecency list gewoon als backup.

Dus voeg een kolom parent_id toe.
Fout gevoelig ben ik niet bang voor. Symfony/Doctrine handelt dit vol automatisch af. Mijn vraag gaat dus vooral over het creeren van een edit en losstaande publicatie structuur.

[ Voor 12% gewijzigd door xantos op 04-04-2010 20:50 ]


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
xantos schreef op zondag 04 april 2010 @ 20:49:
Ja, misschien was ik niet helemaal duidelijk. Het lijkt me niet vreemd dat je in een CMS je structuur wilt omgooien maar dat je deze nog niet wilt publiceren. Je gepubliceerde structuur kan dus anders zijn dan je edit-structuur.
Maar wat maakt een nested set daar zoveel anders aan? Het lijkt mij een kwestie van een kopie maken, de boel bewerken, en de nieuwe versie over de oude heenzetten? :?
Fout gevoelig ben ik niet bang voor. Symfony/Doctrine handelt dit vol automatisch af. Mijn vraag gaat dus vooral over het creeren van een edit en losstaande publicatie structuur.
Waarom is een node verplaatsen dan een probleem, aangezien Doctrine daar gewoon standaard-functionaliteit voor heeft? :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • xantos
  • Registratie: Juni 1999
  • Niet online
pedorus schreef op zondag 04 april 2010 @ 23:15:
Maar wat maakt een nested set daar zoveel anders aan? Het lijkt mij een kwestie van een kopie maken, de boel bewerken, en de nieuwe versie over de oude heenzetten? :?
Ah zo.. ja ik snap nu wat je bedoelt. Zowel het bewerk- als het publicatie-record opslaan in dezelfde nested set. Daar had ik niet aan gedacht.
pedorus schreef op zondag 04 april 2010 @ 23:15:
Waarom is een node verplaatsen dan een probleem, aangezien Doctrine daar gewoon standaard-functionaliteit voor heeft? :p
Is ook geen probleem. Ik wilde dat dus alleen doen van de één naar de andere tabel. En dat leek me niet handig. Bedankt dus voor je antwoord!
Pagina: 1