Ich wäre pragmatisch und würde dem Prinzip "noch nicht optimieren" folgen. Entscheiden Sie sich für eine Lösung, die im Moment Sinn macht und für die Sie die Entwicklungsressourcen haben, die Sie ordnungsgemäß implementieren können. Es gibt viele mögliche Probleme . Aber diese werden nicht unbedingt zu echten Problemen. ZB wäre es wahrscheinlich kein Problem, wenn Sie 100 Benutzer haben. Es könnte ein Problem sein, wenn Sie 100.000 oder 10.000.000 Benutzer haben. Im letzteren Fall sollte es jedoch eine Grundlage für mehr Entwicklungsressourcen geben, um alle Probleme zu lösen.
Das Speichern der Daten in der Datenbank entlastet Sie jedoch nicht von anderen Problemen, z. B. wo die Dateien gespeichert werden sollen, wie sie gesichert werden sollen usw. Da Sie eine Webanwendung schreiben, ist dies aus Sicherheitsgründen eine sehr gute Idee Um sicherzustellen, dass der Prozess, der die Anwendung hostet, keinen Schreibzugriff auf das Dateisystem hat, müssen Sie den Server so konfigurieren, dass der Prozess Lese- / Schreibzugriff auf den Ordner hat, in dem die Daten gespeichert sind.
Ich persönlich würde wählen, die Daten in der Datenbank zu speichern, aber sicherstellen, dass die BLOBS nicht gelesen werden, bis sie wirklich benötigt werden, dh kein "SELECT * FROM ..." für die Tabellen, die Blogs enthalten. Und ich würde sicherstellen, dass das Design es einfach macht, die Daten aus der Datenbank in das Dateisystem zu verschieben, wenn Leistungsprobleme auftreten. Speichern Sie beispielsweise die Dateiinformationen in einer separaten Dateitabelle , um die Dateiinformationen von anderen Unternehmenseinheiten fernzuhalten.
Angenommen, Sie haben eine File- Klasse zum Darstellen einer in der Datenbank gelesenen Datei, dann ist der Codierungsaufwand beim späteren Verschieben minimal.