Ich muss eine bestehende .net-Anwendung erweitern, um Bilder und Dokumente (meistens PDFs) in einer SQL Server 2005-Datenbank zu speichern.
Welcher SQL Server-Datentyp wird am besten zum Speichern dieser Dateien verwendet und ist es sinnvoll, eine separate Tabelle zu erstellen, die die Felder enthält, oder ist es kein Problem, diese Felder direkt in die "normalen" Geschäftstabellen zu stellen SELECT-Anweisungen wählen sie nicht aus (oder SELECT *).
VARBINARY oder FILESTREAM
Sie brauchen sie nicht in einer separaten Tabelle zu speichern - es gibt eingebaute Steuerelemente, die Sie verwenden können, um zu erzwingen, dass sie mithilfe von sp_tableoption in / out gespeichert werden:
(Beachten Sie, dass das Speichern in einer separaten Tabelle von Vorteil sein kann, wenn Sie unterschiedliche Dateigruppen verwenden und diese unabhängig voneinander oder in ähnlicher Weise sichern. Dies kann jedoch als Ausnahme betrachtet werden)
Verwenden Sie varbinary (max) zum Speichern von Bildern und Dokumenten auf dem SQL-Server. Ich würde empfehlen, sie in einem separaten Tisch und nicht in der Haupttabelle zu haben.
Um den anderen Teil Ihrer Frage zu beantworten, wenn Sie binäre Daten in einer Datenbank speichern, mischen Sie die Daten in einer Tabelle nicht mit anderen Feldern. Wahrscheinlich werden Sie die Binärdaten nicht durchsuchen oder indizieren, und der Zugriff auf Metadaten wird durch die Größe der Tabelle verlangsamt. Behalte nur die Bilder / Dateien in einer separaten Tabelle.
Ich kann mir zwar gute Gründe vorstellen, Dateien in einer SQL-Server-Datenbank zu behalten (zum Beispiel: keine Web-App), was @JonH auch sagt: Behalte sie im Dateisystem, es sei denn du hast einen zwingenden Grund, es nicht zu tun.
Tags und Links .net sql-server-2005