Es hängt davon ab, wofür die Datenbank verwendet wird.
In vielen Anwendungen (Web-Apps oder nicht) ist die Datenbank eng mit dieser Anwendung verbunden, da sie als dauerhafter Speicher für sie dient. Dann ist die Datenbank konzeptionell Teil der Anwendung und wird zusammen entworfen (und Sie gehen davon aus, dass kein anderes Programm wesentlich auf diese Datenbank zugreifen oder sie aktualisieren würde ). BTW, Ausdauer durch andere Mittel als eine Datenbank, zB Klartextdateien, Binärdateien (insbesondere indizierte Dateien à la erreicht werden kann GDBM ), git (oder andere VCS) Repositories, Verzeichnisse oder Dateibäume, rohe Festplattenpartitionen, dedizierte Hardware (zB Flash), Remote-Dateisysteme, CheckpointingTechniken. Bei Datenbanken, die für und mit einer Anwendung entwickelt wurden, sollten Sie sich mit allgemeinen Abruf- und Aktualisierungsmustern befassen und das Datenbankschema (und die Indizierung!) Unter Berücksichtigung dieser Muster entwerfen.
In einigen Situationen ist die Datenbank für sich genommen ein wichtiges und unabhängiges Asset und wurde a priori so konzipiert, dass sie von mehreren verschiedenen Anwendungen (und sogar von zukünftigen) verwendet werden kann. Dann sollte es unabhängig (und viel sorgfältiger) gestaltet werden.
Insbesondere sind einige Web-Apps nur Webschnittstellen zu vorhandenen Datenbanken.
In vielen Fällen (denken Sie an ein Wiki als Beispiel) sind die Daten wichtiger und wertvoller als die Anwendungen, die sie verwenden. Möglicherweise ist es Ihnen wichtig, wie Sie es zukunftssicher machen und es einfach weiterentwickeln können (z. B. indem Sie textuelle und vielseitige - vorzugsweise standardisierte und dokumentierte - Formate zum Sichern und Wiederherstellen verwenden oder definieren).
Ich habe festgestellt, dass das (RICHTIGE) Design einer Datenbank keine kleine Aufgabe ist ...
Lesen Sie auch über NoSQL , dokumentenorientierte Datenbanken , Schlüsselwertdatenbanken , Wissensmanagement , Wissensrepräsentation und Argumentation , Ontologien , Expertensysteme , Geschäftsregelansatz , ERP , CMS . Vielleicht sollten Sie REDIS , MongoDB usw. verwenden.