Hi,
Die richtigen Fragen!
ich habe bestimmt in mehr als 20 Foren gefragt. Meine Datenbank/Design ca.20 mal geändert. Rein und raus mit langen Texten. Als Datei oder in Textspalte ?
(Wer viel fragt, kriegt viele Antworten. Wer auf seine Fragen viele Antworten hat, weiss nicht, was er machen soll. Etwa dem folgen, was am haeufigsten behauptet worden ist? Das muss ja falsch sein. Oder dem folgen, was zurzeit am haeufigsten behauptet wird? Noch schlimmer. Oder dem folgen, was behauptet worden ist und einem richtig erscheint? Hoert sich auch nicht sehr zuverlaessig an, aber was soll man alternativ machen?) Was also tun mit langen Texten? Ich wuerde diese (gerne) in ein Datenfeld packen und nicht in eine Textdatei auslagern. Das aber nur, wenn's vom RDBMS ausdruecklich unterstuetzt wird. Dann muesstest Du Dich auch nicht mit dem Dateisystem herumaergern. Liegen die Textdaten im Dateisystem, hast Du naemlich aus dem RDBMS heraus keinen zuverlaessigen Zeiger auf die Daten, d.h. wenn sich die Daten im Dateisystem aendern, bekommt das RDBMS davon nichts mit. (KLar, Du koenntest da mit einem OS-Nutzer kommen, der den RDBMS-Dienst faehrt und der alleine Zugrif auf ein bestimmtes Verzeichnis des Dateisystems hat. Zudem koenntest Du einen betriebssystemnahen Dienstschreiben, der unter dem genannten Account laeuft und bestimmte Verzeichnisinhalte prueft. Trotzdem begeistert mich dieses Vorgehen nicht.). Nach meiner Kenntnis sollte man bei MySQL die Textdaten ins Dateisystem schreiben und nur den Zeiger ins RDBMS, beim MS SQL Server habe ich keine feste Meinung (immerhin geht das Schreiben von Textfeldern beispielsweise in Datenfelder vom Type text oder ntext) und die Oracle-Datenserver unterstuetzen nach meiner Kenntnis das Schreiben von Textinhalten ins RDBMS explizit.
Jeder erzählt etwas anderes ? Was sind Daten ? Sind Daten etwas mit dem man noch Berechnungen anstellt oder die man mehrfach auf einer Webseite gebraucht ?
Nun, Daten sind die Gegebenen oder die Gegegebenheit. Ein erforderliches Wort in folgendem Kontext:
Jemand betreibt ein Geschaeft (muss nicht um Geld gehen ;-) in der Realitaet (was immer das auch sein mag ;-) und moechte seine Projekte und Prozesse IT-maessig unterstuetzen.
Dazu erstellt er zuerst eine Analyse seines Geschaefts und irgednwann erstellt er ein Datenmodell (bildet seine Geschaeftslogik in IT nach), welches dann irgendwann produktiv wird und ein Datenbanksystem irgendwann anfaengt Daten zu speichern.
Informationen aus der Realitaet werden im Datenbanksystem in Daten kodiert (auf eine Art und Weise, wie sie vom Menschen vorher geplant worden ist). Werden aus dem Datenbanksystem Daten ausgelesen, erfolgt eine Informationsgewinnung aus diesen Daten, eine Abstraktion. Daten sind also "Bits und Bytes" oder auch Zahlen oder Zeichen oder von mir aus auch Anordnungen von Steinen (Stonehenge ;-) oder andere "physikalische Zustaende".
Berechnete Daten sollten aus rein ideologischer Sicht nicht in der Datenhaltung gespeichert werden (Redundanz!). In der Praxis ueberlegt man sich dann schon, ob man beispielsweise berechnete rechnungsdaten nicht vielleicht doch im RDBMS ablegt, also einen Verstoss gegen eine Normalisierungsforderung vornimmt. Das hat sich in der Praxis bewaehrt, welcher haette es schon gerne, wenn die Information, welcher Rechnungsbetrag zu welchem Datum gefordert worden ist, nicht mehr abstrahiert werden kann? Da wuerden doch Koepfe rollen.
Sollte man in einer Datenbank z.B. nur den Namen einer Datei speichern,um diese dann dynamisch über eine Schablone zu inkludieren.
Ja, den Zeiger aufs Dateisystem speichern oder gleich den Datenfeldinhalt? - s. Absatz 1
Bitte jemand hilf mir. Ich habe keine Lust mehr ewig alles wieder zu ändern. Weiß nicht wieviel hundert Stunden ich schon damit verbracht habe, Sachen in die DB einzugeben und dann daraus doch wieder html Dateien gemacht und wieder in die DB und wieder raus.
Einige hundert Stunden sollte man schon in die Beantwortung solch wichtiger Fragen inverstieren! ;-)
Hoere auf Dein Gewissen und folge dem Rat, der Dir folgerichtig erscheint. (Gehst Du so vor, machst Du, wenn Du Glueck hast, die wenigsten Fehler, wenn Du Pech hast, wirst Du immer alles falsch machen ;-)
Wie ist das von Trennund von Inhalt und Design. Wenn ich nun lange Texte wie die AGB nicht in die DB packe handle ich dann noch nach dem Prinzip der Trennung von Layout, Inhalt, Design ?
Nun, wenn Du Daten abfragst, dann erhaeltst Du z.B. Matrices oder Datensatzmengen, die irgendwie dargestellt werden muessen. So wie im Forum hier. Auch, wenn Du Daten erfassen moechtest, benoetigst Du eine Oberflaeche, die irgendwie designt ist.
Aber das hat mit der Datenhaltung erst einmal nichts zu tun, es sei denn, Du speicherst Informationen zur Darstellung kodiert in dieser, was manchmal durchaus Sinn macht. Dennoch, behandle gesondert, was sich gesondert behandeln laesst: "divide et impera" hiess es mal im alten Rom.
Gruss,
Lude