Tom: Feature-Request an die Community

Beitrag lesen

Hello,

ich brauche Eure "philosphische Unterstützung".

nebenbei habe ich ein kleines Modul als Include für PHP gebastelt, um für kleine Webseiten mit ganz wenigen Handgriffen eine Benutzerverwaltung, ein "Login", eine "Onlineanzeige", und alle notwendigen Dateifunktionen für den Aufbau eines Gästebuches oder eines kleinen Boards realisieren zu können.

Die Dateiverwaltung soll kein SQL-Lite werden, aber ein paar sinnvolle Funktionen benötigt sie schon. Und das ist jetzt meine Frage: was ist sinnvoll oder was müsste man dringend haben?

Einige Befehle existiern rudimentär

"Select"

Man kann Datensätze durch Eingabe eines Schlüsselwertes ausfiltern
   Wenn man mehr als ein Feld des (varianten) Such-Datensatzes
   ausfüllt, werden diese Werte ebenfalls berücksichtigt (AND), die
   Ergebnismenge also weiter eingeschränkt

braucht man eine Case-Insentive Suche?
   braucht man eine Teilfeldsuche "fängt mit ... an"
   braucht man eine Sequenzsuche (LIKE)

was wahrscheinlich auf jeden Fall benötigt wird, ist eine Möglich-
   keit "Offset" und "Limit" nachzubilden für listenweises
   sortiertes ausgeben.

Wird die Sortierung über eine beliebige Spalte ausreichend sein?
   Sonst wird es nämlich wirklich heftig.

"Update"
   Ein Update eines Datensatzes ist bisher nur über eine Schlüssel
   spalte möglich, wobei jede Spalte Schlüsselspalte sein kann
   Das erste genannte Feld im Update-Array ist automatisch
   Schlüsselspalte. Ist diese UNIQUE (siehe Insert) gibt es ja
   nur einen Treffer, sonst wird bisher der erste Treffer
   verändert.

Da ich mit möglichst wenigen Übergabeparameter auskommen wollte,
   hat sich diese Lösung so entwickelt. Mit Update bin ich aber noch
   nicht glücklich. Wenn man eine andere als die "UNIQUE"-Spalte
   zum Suchen benutzt, ist es im Prinzip möglich, auch doppelte
   Werte in die UNIQUE-Spalte zu bringen.

Das könnte man durch "feste Verdrahtung" z.B. von "ID" für die
   Unique-Spalte verhindern. Es soll in der Bedieung einfach
   bleiben, also suche ich Super Ideen ;-))

"INSERT"
   Man kann beliebige Datensätze einfügen.
   Das erste Feld des Datensatzes (Array) wird automatisch als
   UNIQUE betrachtet. Insert wehrt sich dann, wenn der Wert schon
   vorhanden ist.

Da die Tools dafür da sind, mit wenigen Handgriffen eine kleine
   Page ohne Datenbank hochzuziehen, könnten Feldnamen wie 'nickname'
   oder 'id' locker fest verdrahtet UNIQUE werden.

Oder sollte ich Namens-Präfixe nehmen für bestimmte Funktionen?
   Die würde ein Anfänger am Anfang weglassen, bis er merkt, was
   sie bewirken.

"DELETE"
   gelöscht werden alle Datensätze, auf die das Muster laut
   'select' passt, also über alle Felder mit AND verknüpft

Man bekommt zurückgemeldet, wieviele betroffen waren
   Enthält ein Datensatz ein feld nicht (Da die Satzaufbauten ja
   variant sind) kann es eben auch nicht für die Einschränkung
   herangezogen werden.

Sollte man das umdrehen? Wenn das Feld nicht im Satz vorhanden
   ist, flirgt er aus der Treffermenge raus?

Dieses "Kernel" soll dabei möglichst offen bleiben und keine Funktion angehängt bekommen, die durch einen Wrapper bestens gelöst werden könnte.

Es berücksichtigt das vieldiskutierte Locking.
Zusatzfunktionen wie den Schutz bei zeitversetztem Lesen und Schreiben muss ein Wrapper erledigen und könnte er bisher sowohl mittels hash als auch mit der mtime oder auch mit einem Schreibzähler bis auf Satzebene hinunter.

Dann wird es aber schon wieder komplex.

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)