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 :-)
