Mailinglisten-Archive |
Holger Bahr wrote: > Es geht, grob formuliert - um "(Primaray Key) ID - Shifting". Nö. Sprich mir nach: "Ein Primary Key definiert keine Reihenfolge. Ein Primary Key definiert eine Äquivalenzrelation, die einzigen Operationen, die man auf Primary Keys anwenden kann sind "gleich" und "ungleich"". Du bist gerade dabei, einen Primärschlüssel als Ordnungsrelation zu verwenden. Um die gewünschte Ordnung zu definieren, fängst Du an, Objektidentitäten zu ändern. Wenn jetzt Dein PK noch in anderen Tabellen als FK (Foreign Key, Fremdschlüssel auftaucht), ist das Desaster vorprogrammiert. Der modelltechnisch saubere Vorschlag ist, Objektidentität (PK) und Tabellenordnung sauber zu trennen, indem Du eine gesonderte Spalte "Sortierreihenfolge" angelegst. Die kannst Du zum Beispiel "Erscheinungsdatum" (ein durch den User definierbarer Wert) oder sonstwie passend benennen. > 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. Das klingt wie eine lineare Liste als Programmierstruktur, die Du in SQL nachbilden möchtest. Kristian -- Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00 Using PHP3? See our web development library at http://phplib.netuse.de/ (We have moved! Update your bookmarks!)
php::bar PHP Wiki - Listenarchive