Was gehört in eine Datenbank
Maa
- datenbank
Mahlzeit,
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 ?
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 ?
Sollte man in einer Datenbank z.B. nur den Namen einer Datei speichern,um diese dann dynamisch über eine Schablone zu inkludieren.
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.
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 ?
Danke
Hi,
der vorteil einer Datenbank ist ganz klar.
Daten die Du öfters mal änderst, kannst du alle in die Datenbank packen und z.B. über ein Formular oder so einfach wieder ändern, ohne per FTP oder sonstwas auf den Webser zugreifen zu müssen.
Daten wie z.B. das Impressum oder die AGBs kannst du natürlich in Textdateien auslagern und bei bedarf includen. Für News, Foren, Gästebücher, Bloggs und Co. ist natürlich immer eine Datenbank die erste wahl.
Statische inhalte, wie z.B. Texte die ich selten bis nie ändere packe ich meistens in externe Dateien und include diese bei bedarf. Daten die ab und an mal geändert werden, kommen alle in die DB.
Wenn ich jedoch für Kunden etwas mache, wo der Kunde auch mal was dran machen will, kommt alles in die DB, so das er über ein frontend diese inahlte ändern kann.
Fragen?
MfG
Also mein Problem ist, dass ich Wörter in Texten auch mal schön mit css formatieren will. Alle langen Texte die aus der DB kommen sind ja unformatiert. Bis auf Überschriften. Und dann das Problem mit den nl2br. Wenn man Text in die DB packt gehen doch viel zu viel Speicherplatz drauf.
Sollte dieses Beispiel in die DB oder eine txt-Datei zum inkludieren?
...
Er sagte <span class="fett">"Hallo",</span> und dann <u>unterstrich</u> er ein <a href="wort.html">Wort</a>.
...
Wenn ich nun aber txt Dateien verwende, ist es schlecht beim Wiederverwerten von Text, da es sich ja nur lohnt lange Texte in Textdateien zu speichern. Wenn die aus der db kommen, dann man aber einzelne Paragraphen wiederverwenden. Sonst ist die Zuordnung von zu inkludierenden Dateien zu unübersichtlich, bei - sagen wir - 200 Dateien.
Heyho!
Ich weiß, das alles hilft dir nicht wirklich weiter, aber überleg doch mal:
Für wen machst du das Datenbank-Layout? Für mich? Für irgendwelche anderen Fremden? Nein. Einzig und allein für _dich_ (!!). Wenn _du_ damit zufrieden bist und alles schnell und flüssig läuft ist doch alles ok. Es gibt keine "Datenbank-Aufbau-Regeln" nach denen sich strikt richten muss. Jeder kann seine Datenbank so aufbauen wie er es für richtig hält. Natürlich gibts effektivere und weniger effektive Lösungen, aber du kannst ja bei Problemen einfach was anderes ausprobieren.
Mach einfach das, was du für richtig hältst und schau ob es funktioniert. Wenn ja, würde ich es lassen, wenn nein würde ich noch was dran drehen.
Und da du wahrscheinlich keine 100.000-User-Riesenprojekte aufbauen möchtest, würden eventuelle Performance-Bremsen gar nicht auffallen.
Gruß
Mastershrimp
Hallo,
Und da du wahrscheinlich keine 100.000-User-Riesenprojekte aufbauen möchtest, würden eventuelle Performance-Bremsen gar nicht auffallen.
Ja, aber ich würde es schon gerne professionell machen.
Woher soll ich wissen wie groß meine Projekt in Zukunft werden.
Vielleicht sind es ja ein paar tausend Produkte.
Wie ist es wenn man nur die Namen der zu inkludierenden txt Dateien festhält? Wie macht Spiegel.de das ? Oder große Verlage im Internet ?
Danke
Heyho!
Wie ist es wenn man nur die Namen der zu inkludierenden txt Dateien festhält?
Was bringt das? Das einzige, das sich vorraussichtlich nie ändern wird sind die Dateinamen. Die Dateien musst du dann nach wie vor von Hand nachbearbeiten (oder du schreibst dir ein Bearbeitungs-Script dafür).
Ich tendiere eher dazu alles in die Datenbank zu packen. Wie lang sind die Texte? Eine Datenbank mit der Größe von ein paar MB's ist nicht groß. Die wirklich großen Dinger sind etliche GB's groß. Da wäre ein gutes Datenbanklayout schon wichtig.
Gruß
Mastershrimp
Hallo,
Was bringt das?
So wissen die Skripte welche Datei sie inkludieren sollen. Woher sollen sie das sonst wissen. Habe vergessen zu erwähnen, dass meine Seite 6-sprachig ist.
Ich tendiere eher dazu alles in die Datenbank zu packen. Wie lang sind die Texte?
Es hat ja eigentlich nicht wirklich etwas mit der Länge der Text zu tun. Aber wenn ich den Text schön formatieren möchte. Z. B. mit Unterstreichungen, Infobox wenn man über bestimmte Wörter fährt, etc geht das ja nicht wenn ich das in die DB packe. Geht schon aber so viel Ballast ?
Also hat man hier das Kriterium "Durchsuchbarkeit der Texte" nach Zugriffszeit + Formatierbarkeit zu unterscheiden ?
am besten macht man sich mal seine eigenen gedanken.
was du da erzählst, sind daten. das hat mit deren präsentation erst einmal nichts zu tun.
du beschreibst einfach nur das problem der datenhaltung. ob die texte in der db oder in einer datei stehen, hängt von deren benutzung ab.
wenn du z.b. per suchmaske bestimmte texte suchst, ist es besser diese in der db zu halten.
sollen diese texte aber nur in abhängigkeit benutzt werden, würde ich nur den dateinamen in der db ablegen.
ob du diese texte dann als 'raw' ablegst, oder mit html verpackst, hängt ebenfalls von der aufgabe ab, ob du trennung von daten und präsentation benötigst. in der regel ist es besser, daten als 'raw' zu speichern (ich sage mal XML), und die präsentationsanweisungen separat zu haben. z.b.XSLT, oder eine feste html-seite in welcher die daten dann angezeigt werden.
ergo: s.o.
Hi
ich habe bestimmt in mehr als 20 Foren gefragt. Meine Datenbank/Design ca.20 mal geändert. Rein und raus mit langen Texten.
Echt? Nun, im Internet haben nicht alle recht, du musst nicht immer tun, was man dir sagt.
Als Datei oder in Textspalte ?
Multiple choice? -> Datei
Jeder erzählt etwas anderes ?
Ja, da hast du recht.
Was sind Daten ?
Informationen.
Sind Daten etwas mit dem man noch Berechnungen anstellt oder die man mehrfach auf einer Webseite gebraucht ?
Beides sind Daten.
Sollte man in einer Datenbank z.B. nur den Namen einer Datei speichern,um diese dann dynamisch über eine Schablone zu inkludieren.
Das ist eine Möglichkeit.
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.
Vielleicht solltest du weniger arbeiten und mehr denken? Arbeite ein Konzept aus, das deinen Ansprüchen genügt und sich für deine Aufgaben eignet, und mach dich erst dann ans Implementieren.
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 ?
Ja, aber ich mag keine langen Text in Datenbanken. Das ist meine persönliche Meinung. Wenn ich jedoch eines Tages auf einen Fall stossen werde, wo ich Vorteile darin sehe, lange Texte in eine Datenbank zu speichern, dann werde ich das auch tun. Als DB-Geeignet fallen mir spontan lange Artikel ein, die über mehrer Seiten hinweg dargestellt werden (und immer etwa gleich viel Inhalt pro Seite haben). Das könnte man jetzt disskutieren.
Meiner Meinung nach gehören in eine Datenbank vor allem Informationen, die man leicht normalisieren kann, d.h. in einzelne Häppchen aufteilen kannst. Zusammengehörige Häppchen musst du zu Tabellen zusammen fassen können, welche untereinander in Beziehung stehen. Für lange beziehungsarme Daten (wie deine AGB) produzieren Datenbanken etwas viel Overhead.
HTH
Tom2
Hello,
Was sind Daten ?
Informationen.
Nee, da widerspreche ich.
Informationen werden aus Daten erst durch Verküpfungen und Regeln zwischen den Daten und den dazugehörigen Kontexten, was aber auch nur statische Daten sind.
Beispiel
Wenn ich hier "a f zoo 10:00" hinschreibe, dann sind das Daten, aber diese stellen
noch lange keine Information für Dich dar.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
yo,
Informationen werden aus Daten erst durch Verküpfungen und Regeln zwischen den Daten und den dazugehörigen Kontexten, was aber auch nur statische Daten sind.
dem würde ich widersprechen. nicht die verknüpfung machen aus daten informationen, sondern die wertigkeit für jeden einzelnen. sprich für den einen ist es eine wertvole information, der andere kann es gar nicht verstehen. insofern ist information an personen gebunden. sicherlich bruache ich verknüpfungen, um eine wertigkeit herauslesen zu können. aber ich brauche auch die daten dazu. oder mit anderen worten.
info = wertigkeit[person x]
Ilja
yo,
das ist doch mal wieder so ein schöner beitrag, wo man sich richtig auslassen kann, ohne eigentlich was auszusagen und jeder eine andere meinung vertritt, aber nur die eigene die richtige ist. ;-)
nun da will ich mich nicht lumpen lassen, und meins zum besten geben.
datenbanken bieten uns ganz bestimmte funktionen. natürlich unterscheiden sie sich je nach hersteller in ihrer funktionsvielfalt. wenn du also eine oder mehrere dieser funktionen eines dbms nutzen willst, dann packe die entsprechenden daten in einen datenbank. zum "blosen" speichern und auslesen kannst du die informationen auch auf andere arten ablegen, bzw. abrufen. wichtig ist also, brauche ich die bestimmte elemente eines dbms oder nicht.
Ilja
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