phpbar.de logo

Mailinglisten-Archive

[php] inserting between 2 rows

[php] inserting between 2 rows

Holger Bahr hb_(at)_tsi-gmbh.de
Mon, 06 Dec 1999 14:25:32 +0100


Hallo Liste,

habe folgendes zu lösen und wäre dankbar um (am besten) einige
Erfahrungen. Ich habe einen solchen Fall bisher noch nicht
gehabt. Es geht, grob formuliert - um "(Primaray Key) ID - Shifting".

Ein User soll Datensätze anlegen können.	(Kein Problem)
Sagen wir, er gab 50 davon ein.		(Fein)
Einen Tag später löscht er drei davon.	(wenn es denn sein muss)

Zwei Stunden später, möchte er "zwischen
dem ersten und dem zweiten" (z.B.), ´nen
neuen Datensatz einfügen.			(kein P...*aehm*, moment mal kurz)

Der User möchte die Daten immer(!) in der Reihenfolge gelistet sehen,
in welcher er sie auch angelegt hat.
Von mir aus auch mit Erstell-Datum dazu aber, Eintrag 66 kann viel älter sein 
als Eintrag 44 weil es möglich sein soll, die Reihenfolge in so fern zu
ändern, 
daß vor oder nach bereits bestehenden Positionen ein neuer Eintrag gesetzt 
werden kann.

Eine Sortierung der Anzeige (wassweissich ... 'Preis' oder 'Datum' oder
'Name' 
oder was auch immer) ist explizit nicht gewünscht (nicht einmal die
Möglichkeit 
dazu).

Wenn vom Gesamtbestand zwei Einträge gelöscht werden, müssen also quasi
alle Einträge mit neuen Primary Keys ausgestatt (durchnumeriert) 
werden, damit es wieder eine lückenlose Reihenfolge gibt und wenn zwischen 
dem ersten und zweiten Eintrag in der DB (zwischen P-KEY '1' und '2') einer 
hinzugefügt/reingeschoben/dazwischengesetzt werden soll, müssten alle
P-Keys unter KEY '1' um eins (+1) geshifted werden, so daß schliesslich '2'
nun frei/unbelegt für das neue Entry ist und aus dem alten 2er ne 3 wird und 
aus der alten 3er ne 4 etc.

Hat jemand schon einmal etwas ähnliches gemacht ?

Ach ja, das Programm soll sich natürlich automatisch die richtige Reihenfolge
'merken'. Es ist nicht erwünscht, bei jedem Eintrag generell eine Position 
angeben zu müssen. Falls Einträge dazwischengeschoben werden, ist es klar daß 
man schon angeben muss ob "vor- oder hinter Eintrag X" eingefügt wird.
Wenn man keinen "einschiebt" sondern just einen Datensatz hinzufügt, wird
der automatisch gaaanz nach hinten/unten gesetzt.

Ich suche halt eine richtig pfiffige Lösung dafür und daist "Brainstorming"
immer gut .... naja .. ich überlege jetzt mal los jetzt und würde mich über
Eure Gedanken diesbezüglich freuen (bin sooo alleine mit dem Kram :)

Vielen Dank,

Holger
---------------------------------------------------------------
Holger Bahr                                            TSi GmbH
hb_(at)_tsi-gmbh.de                                     Neustr. 9-12
02636 9764 22                                   D-53498 Waldorf
http://www.tsi-gmbh.de          New Phone #: +49-(0)2636-9764-0
http://www.waldorf-gmbh.de      New Fax  #: +49-(0)2636-9764-99
---------------------------------------------------------------



php::bar PHP Wiki   -   Listenarchive