Kann man alles über eine Datenbank laufen lassen?

4 Antworten

Kann man alles über eine Datenbank laufen lassen?

Können - ja. Es ist aus Sicht der Datentrennung und Wiederverwendbarkeit allerdings nicht so sinnvoll, Daten und Quelltext zusammenzuspeichern.

Nimm als Beispiel den Titel einer Seite, der womöglich als Titel des HTML-Dokuments, als auch für die erste Überschrift im Inhaltsbereich benutzt werden soll. Wenn nur der Titeltext in einer Datenbankzelle abgelegt wird, kann er für beide Fälle abgerufen und eingesetzt werden.

Mittels einer Trennung von reinen Daten und Struktur (HTML), bleibst du flexibler. Sollte sich die Struktur einmal ändern, brauchst du nicht an die Datenbank. Sollten sich einmal die Daten ändern, brauchst du nicht im Quelltext suchen.

Ist es schwer (...)

Grundsätzlich würde ich es nicht als schwer bezeichnen.

Was du brauchst:

  • Mach dir darüber Gedanken, welche Inhalte in der Datenbank stehen sollen und wie du sie strukturierst. Man könnte die Daten beispielsweise je Seite oder Komponente bündeln. Was sich eher eignet, hängt von deiner Webseite ab.
  • Natürlich den Datenbankserver sowie eine Verbindungsstelle, über die du mit der Datenbank von deiner Webanwendung aus kommunizieren kannst. Je nachdem, mit welcher Programmiersprache du nun deine Webanwendung baust, kannst du in der Regel Bibliotheken o.ä. finden, die dir dabei helfen.
  • Je nach Datenbanksystem musst du wissen, wie du Anfragen (Queries) formulieren kannst.
  • Programmierkenntnisse mit der Programmiersprache, mit der du deine (serverseitige) Webanwendung entwickelst. Je nachdem, welche Seite angefordert wird, muss deine Anwendung eine Anfrage an die Datenbank stellen. Die empfangenen Daten kannst du nun direkt in das HTML einsetzen, welches an den Browser geschickt wird (an der Stelle lohnt es sich, eine Template-Engine zu verwenden) oder du gibst es an eine JavaScript-Anwendung weiter, die die Daten im Browser in die jeweiligen DOM-Knoten einsetzt.

Ich würde an der Stelle empfehlen, direkt nach Frameworks oder Sets zu schauen, die dir die erwähnten Funktionen bieten, und dich in diese einzuarbeiten.

Zum Beispiel:

  • Django (Python)
  • Express + Prisma + Pug/EJS (JavaScript)
  • Flask + Flask-PyMongo (Python)
  • Laravel (PHP)
  • Quarkus (Java)
  • Spring + Thymeleaf (Java)
  • Yii + Twig (PHP)

Alternativ könntest du auch direkt ein CMS nutzen. Die übernehmen für dich die Datenverwaltung. Du gibst die Struktur deiner Inhalte vor (Seiten, evt. auch Seitentemplates) und kannst zudem für die Präsentation (Weboberfläche) ein eigenes Theme anlegen. Der Vorteil gegenüber den obigen Lösungen ist, dass du als Nutzer deine Daten einfacher verwalten kannst, da das CMS dir dafür eine grafische Oberfläche aufbereitet.

Ich habe das mal gemacht, allerdings mit MySQL. Natürlich kann man Seiten in einer Datenbank abspeichern und über selbstgeschriebene Programme (in meinem Fall PHP) wieder ausgeben. Das läuft aber mit wachsenden Ansprüchen darauf hinaus, dass man sich ein eigenes CMS schreibt. Sehr schnell steht man dann vor der Frage, ob man nicht einfacher ein CMS wie Wordpress oder Joomla nimmt.

Ich habe mich dann für letzteres entschieden.

Ehrlich gesagt ich verstehe was Du nun genau machen möchtest. Wenn Du eine Website mit einer Datenbank verknüpfen willst, kannst Du mit einer serverseitigen Sprache auf deine MongoDB zugreifen. Ich kenne nur den Zugriff mit PHP

https://www.php.net/manual/de/mongodb.installation.windows.php

Ich arbeite allerdings mit einer LinuxDistro Debian.

Mit Hilfe dieses Treibers/Bibliothek kannst Du deine Abfragen und Daten an die Datenbank senden und anfordern.

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber

$get_index_php = 'SELECT page FROM pages

WHERE page = "index.html"'

echo $get_index_php;

------

Wie war das nochmal mit der Zeichenbegrenzung für Strings?

Das, was du vorhast ist zwar eine nette Idee, ist aber nicht wirklich sinnvoll.