Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Sander (8133 Beiträge) am Freitag, 30.Januar.2004, 23:30.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      is aber nich nested set ;-) (keine bessere ausrede gefunden *g*)

      Sander


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 28.Januar.2004, 11:20.
    @Profis - Routine für Auto-Increment-Feld

      Hallo,
      hat jemand schon ne fertige Routine, für ein Auto-Increment-Feld mit automatischer Anpassung bei Löschung und Änderung eines Datensatzes?
      Also konkret für Positionsnummern in nem FAQ-System, die aber dann auch noch frei geändert werden können, die so wie bei der automatischen Nummerierung der Felder bei der Verwaltung von Datenbanken funzt.
      ( @CB - verrätst du, wie du das machst?????)
      Danke für Tipp
      Ruben

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 28.Januar.2004, 15:52.
    Re: @Profis - Routine für Auto-Increment-Feld

      > hat jemand schon ne fertige Routine, für ein Auto-Increment-Feld mit automatischer Anpassung bei Löschung und Änderung eines Datensatzes?
      

      Was heisst "automatische Anpassung bei Löschung und Änderung eines Datensatzes" ? Sollen dann alle drüber 1 nach unten rutschen? Dann wäre es nix weiter als n Zähler, den brauchts Du nich in der DB speichern, sondern da gibst Du einfach $_loop aus ,-)

      Ansonsten: Du sollst keine eigenen Ids verwenden, nimm das "Id" von bp ;-)

      Warum willst Du die Positionsnummer nachträglich ändern?

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 29.Januar.2004, 08:01.
    Re: @Profis - Routine für Auto-Increment-Feld

      hallo, Christoph,
      danke erst mal für die Antwort..befriedigt mich aber nich so richtig :-(

      Es soll genauso sein, wie du es schreibst mit dem nach unten rutschen - das mit dem Zähler ist kein Ding - aber beim Verändern, da weiss ich dann nicht mehr weiter... es fehlt mir sogar der Gedankenansatz zur möglichen Methode und Logik.

      Es soll erreicht werden, dass bspw. bei einer Menge X Datensätzen, bspw. Fragen, diese per Hand nummeriert werden. Es muss zum ersten vermieden werden, dass Positionsnummern doppelt vergeben werden (nagut, dafür hab ich ne Lösung) , wenn doppelt soll Frage kommen, ob die Posisitonen angepasst werden sollen, wenn ja, sollen dann bei allen anderen nachfolgenden Datensätzen die Positionsnummern automatisch verschoben werden - genauso beim Ändern, wenn ne Positionsnummer geändert wird, sollen sich die anderen automatisch anpassen.
      Es sollen alle Datensätze auch immer chronologisch nummeriert werden, ohne Fehl"stellen" oder sowas.
      Bräuchte ja auch nur nen Gedankenanstoss.....

      Danke
      Ruben

      PS Die internen IDs werden schon gebraucht und genutzt, aber die liegen halt weder chronologisch ohne Lücken vor, da sie eineindeutig sind (was gut so ist) und nützen mir hierfür auch erst mal nicht direkt was...

     Antworten

    Beitrag von olaf (59 Beiträge) am Donnerstag, 29.Januar.2004, 10:25.
    Re: @Profis - Routine für Auto-Increment-Feld

      moin hempelr,

      mmh, ich glaube ich weiss was du meinst. du möchtest sozusagen eine sortierreihenfolge von hand vorgeben, wie auch immer die reihenfolge aussehen mag?

      du brauchst also eine index-datei in der steht, welcher datensatz (id) an welcher pos kommt.
      z.b.:

      id
      34
      35
      20
      etc.

      die zeile wäre dann die reihenfolge nach der dann die datensätze(id) ausgegeben werden.

      die index-"liste" ließe sich als array wahrscheinlich recht gut verarbeiten ( wegen splice und foreach? ). mit join kann ich daraus ein $index machen was sich recht gut als file oder in einer db in einem feld speichern lässt. mit split kann man daraus wieder ein array machen.

      auch wenn ich dein prob nicht richtig verstanden habe, hoffe ich doch dir einen tip gegeben zu haben.

      gruss
      olaf

     Antworten

    Beitrag von hempelr^ (1 Beitrag) am Donnerstag, 29.Januar.2004, 12:41.
    Re: @Profis - Routine für Auto-Increment-Feld

      Hallo, olaf,
      danke - genau der Ansatz hat mir gefehlt....
      *michmitderhandandiesgtirnschlag* hatte ich sogar selbst schon mal so eingesetzt, allerdings "onthefly", mal sehn, wie ich das hinkrieg mit abspeichern in der DB....
      mhm - wäre wahrscheinlich ne Idee, dafür ne getrennte Datenbank zu nehmen und wie du schon sagst die ganze Reihe in ein Feld abzuspeichern, das wird dann mit geladen und bei Umsortierungen wieder gespeichert....
      ich versuchs mal...
      thx
      Ruben

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 29.Januar.2004, 18:06.
    Re: @Profis - Routine für Auto-Increment-Feld

      schon mal etwas von einem nested set gehört? da kannst du angeben, welche id links und rechts bzw drüber oder unter einem DS steht. Vorteil: änderst du die Position eines DS, brauchst du nur max 5 andere DS mitändern.

      Sander

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 29.Januar.2004, 19:37.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      hallo, Sander
      haste mal bitte noch paar Infos, wo man was dazu findet (also was das ist und wie das geht) - noch nie was von gehört...
      Ups - grad mal gegoogelt und auch was gefunden (besser gesagt jede Menge) - das ist wohl eher "schwer verdaulich" glaub ich mal...auch wenns bei http://ffm.junetz.de/members/reeg/DSP/node10.html#SECTION04344000000000000000 echt gut erklärt ist...hab doch keinen Plan von SQL und son Zeugs (braucht man doch bei bp nicht ;-)

      nadann, danke ich schau mirs nochmal genauer an...
      Ruben

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 29.Januar.2004, 22:42.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      für deinen Fall ist es nicht so schwierig und sql brauchts auch nicht.
      Die Technik funzt kurz gesagt so:
      plätze hier wie Id
      ..................Ds mit platz
      Id.....Name.....davor....dahinter
      1......Bernd......0..........2
      2......Klaus......1..........3
      3......hans.......2..........4
      4......bärbel.....3..........5
      5......petra......4..........6
      6......jim........5..........

      so, jetzt stell dir vor, du änderst DS mit Id 3 auf platz 2
      Dann sähe das nach dem ändern so aus

      ..................Ds mit platz
      Id.....Name.....davor....dahinter
      1......Bernd......0..........3 - geändert
      2......Klaus......3..........4 - geändert
      3......hans.......1..........2 - geändert
      4......bärbel.....2..........5 - geändert
      5......petra......4..........6
      6......jim........5..........

      dann löscht du DS 4
      fragst wer zeigt auf ID 4?
      ..................Ds mit platz
      Id.....Name.....davor....dahinter
      1......Bernd......0..........3
      2......Klaus......3..........5 - geändert (Id 4 "dahinter" zeigte auf Id 5)
      3......hans.......1..........2
      5......petra......2..........6 - geändert (davor zeigte auf Id 4)
      6......jim........5..........
      und natürlich den DS mit Id 4 rausgeschmissn.

      ungefähr klar?
      Das ist jetzt in einer flachen struktur, du kannst das noch mit Pappa und Kinder erweitern (Baum pflanzen ;-)), das Prinzip wäre dann das gleiche

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 30.Januar.2004, 09:48.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      Hey - danke - gut erklärt - so begreift es selbst ein alter Knochen wie ich noch ;-)
      Habs abgespeichert, ist soweit klar - cooles Verfahren.....
      Ruben

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 30.Januar.2004, 22:48.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      Warum so kompliziert? ;-)

      Da reicht doch ein Feld, das den nächsten Eintrag angibt:

      Id..Name...next
      1...Bernd..2
      2...Klaus..3
      3...Hans...4
      4...Bärbel.5
      5...Petra..6

      Schieben von 3 auf 2:

      Id..Name...next
      1...Bernd..3 *
      2...Klaus..4 *
      3...Hans...2 *
      4...Bärbel.5
      5...Petra..6

      musste nich soviel ändern & speichern ;-)

      Vor- und Zurückbewegen geht genauso:

      get "Id==$next";
      

      holt den nachfolgenden und

      get "next==$Id";
      

      den vorigen... ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 30.Januar.2004, 23:30.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      is aber nich nested set ;-) (keine bessere ausrede gefunden *g*)

      Sander

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 31.Januar.2004, 00:21.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      Hey, das is "advanced reduced order processing", das is echt voll the thing, man! ;-)

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Samstag, 31.Januar.2004, 16:11.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      Denkanstoss:

      Wenn man jetzt eine Liste ausgeben möchte mit dieser Sortierung,(und das hat man ja vor wenn man ne FAQ DB schreibt) dann würde das ja eine DB Abfrage pro Datensatz bedeuten.
      Nen bissel langsam!

      Eingendlich efüllt ja die Pos dieses Forums schon alle anforderungen.
      Mann kann Einträge an beliebigen stellen einfügen und (mitlerweile) auch löschen ohne das es zu Problemen kommt. Somit ist auch nen Veschieben möglich. Und um eine komplette Liste auszugeben benötigt man nur eine einzige Abfrage. ;)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 31.Januar.2004, 22:13.
    Re: @Profis - "nested set" ???? war Routine für Auto-Increment-Feld

      > Wenn man jetzt eine Liste ausgeben möchte mit dieser Sortierung,(und das hat man ja vor wenn man ne FAQ DB schreibt) dann würde das ja eine DB Abfrage pro Datensatz bedeuten.
      

      Nee, da liest man die DB in einem Rutsch komplett ein und wandert dann durch die Einträge und baut damit ne Liste auf...

      > Eingendlich efüllt ja die Pos dieses Forums schon alle anforderungen.
      

      Jups, hat nur eine Begrenzung bzgl. der Tiefe, da ja Fliesskommazahlen genommen werden und irgendwann bei x.00000000000005 oder so is Schluss ;-)

      Aber das FAQ-Beispiel in der bib funktioniert genauso... ;-)

     Antworten


     
 Liste der Einträge von 32250 bis 32400:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.08s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!