Frage

Ich habe einen Wartungsbildschirm für die Person gemacht. Der Kunde möchte, dass ich das Foto jeder Person in der Datenbank speichere, und ich habe es ohne Probleme gemacht. Ich habe eine separate Tabelle für die Bilder mit zwei Feldern, id_person und Bild.

Ich bin ein wenig besorgt, weil es das erste Mal ist, dass ich mit Bildern in der Datenbank arbeite. Werde ich Leistungsprobleme haben, wenn die Tabelle über 1000/5000 Bilder hinaus wächst? Ich nehme an, dass die Größe jedes Bildes einen Unterschied macht. Ich bin sicher, dass ich steuern muss, dass der Benutzer in der Datenbank keine sehr großen Bilder speichert.

Was wäre eine gute Größengrenze? Der Kunde braucht nur Bilder des Gesichts, aber ich bin sicher, dass jemand versucht, die Bilder mit einer "letzten Modell" -Kamera in voller Qualität zu machen;)

Vielen Dank.

War es hilfreich?

Lösung

Normalerweise wird es vorgezogen, einen Ordner mit Bildern und den DB nur auf diesen Ordner zu verweisen. Idealerweise hat jede Person eine eindeutige ID und die Dateien im Ordner "Bilder" übereinstimmen mit dieser ID.

Wenn Sie die Binärdaten wirklich direkt speichern möchten, können Sie ein angemessenes Qualitätsfoto in 8 KB eines JPEG (ca. 250x250 PIX @ 25% Qualität) erhalten. Dies wäre natürlich inakzeptabel für den Drucken, ist aber in Ordnung für die Identifizierung.

Nur Sie wissen, ob Sie in Ihrem Datenbankserver zusätzliche 8 KB pro Zeile akzeptieren können.

Andere Tipps

Wenn Sie es absulty so machen müssen, würde ich sagen, dass es jeweils nur ein paar Kilobyten beschränken. Jeder Datenbankadministrator in der Welt wird Ihnen jedoch wahrscheinlich sagen, dass Blobing -Bilder in ein Datenbankfeld eine sehr, sehr schlechte Idee sind. Am auffälligsten werden die Leistungsleistung drastisch abnimmt, wenn die Datenbankdatei über zwei Gigabyte mit Größe hinausgeht.

Ich würde es vorziehen, wie Jheddings sagte und einen Ordner mit der ID jeder Person der Dateiname zu haben und danach auf einer Netzwerkfreigabe nur einen Standard -JPG oder etwas zu verwenden, sodass alle Computer, die die App verwenden, auf die Bilder zugreifen können.

Einige stellen fest, dass einfach die Verwendung der ID nicht gut genug ist, wenn das Foto gelöscht oder archiviert werden muss. In diesem Fall geben sie ein Nvarchar (MAX) -Feld in ihre Datenbank und speichern den Netzwerkdateipfad anstelle des Bildes zum Bild anstelle des tatsächlichen Bild.

Ich würde das Bild nur dann machen, wenn Ihr Kunde keinen Netzwerkfreigabepfad haben kann.

Solange es sich in einer separaten Tabelle mit ID | Blob befindet, sollte es keine Leistungsprobleme finden, die dieses Foto abrufen, aber auf der anderen Seite ziehe ich es vor, in DB nur Verweise auf Dateien auf HDD zu halten (oder sogar noch besser, wenn es nur Benutzerfoto ist Benötigen Sie keine Referenz, da der Benutzer mit ID 1 zu /images/1.jpg geht)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top