Datenbank in einer Textdatei simulieren
berdn
- datenbank
0 ChiefTequila0 berdn0 ChiefTequila0 berdn
0 Daniel Thoma0 Christian Kruse0 berdn
Hallo liebes Forum,
für einen kleinen Kunden wollen wir ein kleines PHP-Redaktionssystem einrichten. Bisher haben wir Daten in einer MySQL Datenbank vorgehalten.
Pro Seite gab es 14 Datenbankfelder (z.B. Titel, erster Inhalt, zweiter Inhalt, Image Pfad etc.)
Nun hat der Kunde keine Datenbank und unsere Überlegung ist die Daten in Textdateien vorzuhalten.
Nun bin ich mir sehr unsicher was ein "guter Weg" ist.
Die ganze Site wird aus etwa max. 8 Seiten bestehen. Meine este Überlegung wäre:
Für Anregungungen, Kritik dankbar,
Berdn
hmm ich weis nicht ob das ne gute idee ist aber wiso
legst du nicht einfach für jede Tabelle einen Ordner an und in diesem Ordner legst du nun für jedes feld eine eigene Text Datei ab allso etwa so
[Tabelle (Ordner)]
[Name][Vorname][Harfarbe][Augenfarbe][Geschlecht] <- 5 Text dateien
Tomas meier grünn blau Mänlich
Philip Schub Blond Braun Mänlich
Hoffe du hast das jetzt verstanden allso 5 Tabellen = 5 Ordner
5 Atribute = 5Textfiles
1 Datenbank = 1 Ordner
So solte es möglich sein das ganze Datenbank zeugs zu simulieren.
Naja sag mir bitte ob dir das geholfen hatt würd mich wirklich seer interesieren ^^
Gruss ChiefTequila
Hallo ChiefTequila,
hmmmmH es ist nur eine Tabelle, aber ob es gut ist für jedes Feld eine Textdatei anzulegen und die Records Zeile für Zeile zu schreiben.
D.h. z.B. der record mit dem PrimärKey ID 36 wäre dann in fünf verschiedenen Textfile in Zeile 20.
Da sich die Tabellenstruktur nicht mehr ändern wird halte ich glaube meinen Idee im Momnet noch für besser. Ich denkmal darüber nach.
Grüße,
Bernd
Du must es wisen ist dein Projekt auf jeden fall
viel spass beim scripten und hoffe das ich dir trozdem ein bischen helfen konnte :-P
Gruss ChiefTequila
Hallo ChiefTequila,
jeder qualifizierte und auch oft nicht qualifizierte Vorschläge können einen weiterbringen.
Bernd
Hi,
jeder qualifizierte und auch oft nicht qualifizierte Vorschläge können einen weiterbringen.
stimmt. ;-)
Daher noch einer von mir, der nur funktioniert, wenn Du auf Dateien nicht nur sequenziell zugreifen kannst, sondern auch auf bestimmte Positionen. Ich verwende hierbei gerne eigene, speziell auf die Anwendung zugeschnittene Datenformate. Hierbei speichere ich die Daten zwar sequenziell in einer Datei, lege aber zusätzlich eine index-Datei mit Zeigern auf die einzelnen Datensätze und ggfls. (bei variablen Feldlängen) auf die Felder selbst.
freundliche Grüße
Ingo
Hallo berdn,
Das ist keine gute Idee. Wenn Du die Datensätze zeilenweise in eine Datei schreibst, musst Du die Datei schon im Durchschnitt bis zur Hälfte lesen, um einen Datensatz zu finden. Wenn Du dann für jede Spalte eine Datei anlegst, musst Du das auch noch mit mehreren Dateien tun, was das höchstens noch langsamer macht (außer Du hast Spalten mit sehr viel Daten, die Du aber fast nie brauchst)
Wenn Du nur mit einem Schlüssel zugreifen willst, kannst Du für jeden Datensatz eine entsprechend benannte Datei anlegen.
Wenn Dir das nicht genügt, würde ich Dir empfehlen Berkely DB Dateien zu verwenden:
http://www.sleepycat.com/
Grüße
Daniel
你好 Daniel,
Wenn Dir das nicht genügt, würde ich Dir empfehlen Berkely DB Dateien zu
verwenden:
http://www.sleepycat.com/
Und fuer alle anderen Faelle gibt es ja auch noch SQLite. Hat Perl, PHP,
Python und TCL-Bindings (wahrscheinlich noch ein paar mehr, kA). Fuer Perl
gibt es sogar ein schoenes DBD::SQLite
再见,
CK
Tausend Dank für die Antworten,
ich habe auch noch das im Netz gefunden, mal testen, wird aber auch eher träge sein ...
http://www.c-worker.ch/txtdbapi/index.php
Ansonsten werde ich für jede Seite eine komma/tabgetrennte 1 zeilige Textdatei anlegen, was dann hoffentlich schnell genug ist.
Ich selber hatte mir das etwas einfacher vorgestellt, abe rDAtenbanken haben ja Ihre Berechtigungen.
Die beiden Links den "einfachen" Datenbanken habe ich mir interessiert angeschaut, bin mir aber nicht sicher ob ich die ohne Rechte auf den Webserver zum laufen kriege ...
Mal schauen,
Allen einen schönen Dienstag,
Bernd