Images in Datenbank

Lordwurst

Ensign
Registriert
Okt. 2008
Beiträge
181
Moin alles zusammen.
Also das was ich versuche will habe ich noch leider nie gemacht und bin mir auch nicht sicher ob es überhaupt geht. Wäre nett wenn mir mal einer da paar Sachen zu sangen kann.
Also ich habe ein dynamisch Web Seite gebaut auf der man Graphik Karten kaufen kann. In der SQL Datenbank die ich da zu benutze habe ich eine Tabelle zurzeit mit Produkten. In der Tabelle habe ich ID, name, details, price und image. So was ich nun wissen will kann man ein link in die datenbank einbauen der auch auf der seit gezeigt wird und wenn man darüber hovered das sich ein div öffnet mir dem Bild das zu dem Produkt gehört????

Also ich habe es schon geschafft die Bilder einfach so mit in die Datenbank zubauen und die werde auch angezeigt aber das sieht nicht so gut aus und rückt die ganze Tabelle auf der Web Seite nach rechts.
Kann mir da einer helfen? Bin mir auch nicht sicher ob ich das richtig beschrieben habe was ich versuche??
http://www.ebuyer.com/product/222235 ich habe mir mal ein link der zwar nicht das zeigt was ich versuche aber ich glaube das ist ähnlich. Da wo das bild ist, wenn man da drüber hovered dann öffnen sich ein div mitdem selben bild. Und ich versuche anstatt einem bild als hover ein link oder text zu benutzen.

danke für alle antworten.
 
Das funktioniert mit Javascript, das grössere Bild ist solange unsichtbar bis der mauszeiger über das kleinere wandert. sobald der mauszeiger auf dem bild ist wird das div element per javascript sichtbar geschaltet
 
Google mal nach 'javascript zomming'. Da gibts einiges an geistigem Input aus denen du dir das richtige rausziehen kannst. Eine andere Möglichkeit wäre das Bild in die Datenbank zu legen, lokal mit einem Framework wie jQuery oder PrototypeJS entsprechend auszulesen bzw. die zoom-Funktion zu implementieren. Das sollte nicht so ein Aufriss sein.

Schau dir das mal an: http://webagentur-meerbusch.de/blog/2010/03/jquery-zoom-effekte-zum-nachbauen/

Vorteil von Frameworks dabei: Du sparst dir eine Menge Crossbrowser-Ärger. Glaub mir, gerade im Auslesen von Mauspositionen, könnten die Methodiken nicht verschiedener sein...
 
Firestorm- schrieb:
Eine andere Möglichkeit wäre das Bild in die Datenbank zu legen

Bilder in die Datenbanken zu legen ist NIE eine sinnvolle Möglichkeit, es hat sich nicht umsonst am Filesystem bewährt :)

Ich persönlich mach es zB so, dass ich den Pfad und Informationen zu dem Bild in der DB abspeichere, aber nie das Bild selber. Es macht später immer nur Probleme und man ist bei weitem nicht so flexibel, zudem bläht es das Datenbank Backup unnötig auf.


so long
 
-=Renegade=- schrieb:
Bilder in die Datenbanken zu legen ist NIE eine sinnvolle Möglichkeit..

Falsch.

Das kommt absolut drauf an was du vor hast, Renegade. Pauschalisieren würde ich das sicher nicht. Ich kann mir da auf Anhieb mehrere Use-Cases vorstellen in denen es sinnvoll ist Bilder in eine Daba abzulegen, man bedenke nur mal den umgekehrten Fall deines Arguments 'es bläht die Datenbank nur unnötig auf'.
 
Dann bin ich gespannt, die Use Cases zu hören.

Ich lasse mich gern davon überzeugen, wenn gute Argumente kommen.


Aber ich hab selbst schon die Erfahrung machen müssen, ein Migrationsprojekt mit ein paar tausend Bilder Blobs in einer Oracle DB zu übernehmen :) war lustig..
 
Fangen wir mal mit dem Hauptvorteil in meinen Augen an: Referenzielle Integrität.
Man weiß schlichtweg welches Bild zu welchem Datensatz gehört. Man hat also alles 'on-one-point'. Sinnvoll wenn man strukturelle Änderungen vornehmen will oder das Bild in Abhängigkeit von den Daten des Datensatzes austauschen will. Somit ist eine Vergessen in Form von nicht mehr aktuellen Bildern zu einem Datensatz eher unwahrscheinlich wie es im Dateisystem durchaus der Fall sein könnte, sofern du nicht die nötigen automatisierten Skripts hast, die das für dich erledigen...

Meines Wissen wurde früher genau dein Ansatz verfolgt: Meta-Daten in der Datenbank lagern, das File an sich, irgendwo im Datensystem. Wartungstechnisch sicherlich ungünstig (und gerade im Falle eines OnlineShops)...

Klar wird deine Datenbank dadurch aufgebläht, sofern man Blobs hat die deine beschriebenen Ausmaße annehmen, aber andererseits hast du auch den ernormen Vorteil, dass du genau ein Backup/Dump erzeugst.
Naja und der spezifische Nutzerzugriff auf Daten in der Datenbank ist ja wohl generell einfacher zu administrieren und zu benutzen als der von beispielsweise einer htaccess.... Ich denke da wirst du mir auf jeden Fall zustimmen müssen...

Versteh mich nicht falsch, aber ich hoffe ich konnte dich überzeugen, die Fileablage in eine Datenbank nicht pauschal als schlecht zu verurteilen. Es gibt sicherlich auch genug Dinge die dagegen sprechen können. In deinem beschrieben Fall wäre ich vermutlich auch auf eine Ablage im Dateisystem gegangen als mir tausende Bilder aus der Daba geben zu lassen.... Letzendlich ist es nach wie vor absolut bedingt durch die Situation, wie ich es auch schon mehrfach geschrieben habe. :)
 
Firestorm- schrieb:
Fangen wir mal mit dem Hauptvorteil in meinen Augen an: Referenzielle Integrität.
Man weiß schlichtweg welches Bild zu welchem Datensatz gehört. Man hat also alles 'on-one-point'. Sinnvoll wenn man strukturelle Änderungen vornehmen will oder das Bild in Abhängigkeit von den Daten des Datensatzes austauschen will. Somit ist eine Vergessen in Form von nicht mehr aktuellen Bildern zu einem Datensatz eher unwahrscheinlich wie es im Dateisystem durchaus der Fall sein könnte, sofern du nicht die nötigen automatisierten Skripts hast, die das für dich erledigen...
Naja, dazu muss ich sagen, wenn man keine automatisierten Skripts hat, ist es klar. Aber dabei trifft man ja auf das generelle Problem, wenn der nicht versierte Administrator wo rumzupfuschen anfängt, wo er nicht soll. Egal ob am Filesystem oder in der DB, wenn er da anfängt per Hand Dinge zu ändern, die besser ein Skript erledigen sollte, muss ich davon ausgehen, dass er potentiell was kaputt macht :D
Das Problem hab ich aber nicht nur bei Bildern sondern überall wo Leute hingreifen wo sie nicht sollten und es gibt auch genug "Administratoren", die Dinge direkt in der DB erledigen wollen. Leider.


Meines Wissen wurde früher genau dein Ansatz verfolgt: Meta-Daten in der Datenbank lagern, das File an sich, irgendwo im Datensystem. Wartungstechnisch sicherlich ungünstig (und gerade im Falle eines OnlineShops)...
Wenn ich automatisierte Skripts habe, erkenn ich es als Endanwender überhaupt, wo ich Hand anlegen muss? Ich hab meine vordefinierten Aktionen und die laufen im Hintergrund ab. Wenn ich das nicht habe, dann selbes Problem wie oben ;)
Und wenn wir schon das Beispiel des Online Shops haben: Hierbei muss ich ausgehen, dass ich sehr viele parallele Anfragen habe und davon sehr viele Daten zu den jeweiligen Artikeln in der Datenbank stehen. Ohne jetzt einen Beweis zu haben könnt ich mir vorstellen, dass die Datenbankanbindung (und bei größeren Webshops ist der DB Server selten auf der selben Maschine wie der Webserver) sehr schnell zu einem Flaschenhals werden kann, besonders dann, wenn ich viele Bilddaten transferieren muss, die ansonsten direkt am Filesystem liegen würden.

Klar wird deine Datenbank dadurch aufgebläht, sofern man Blobs hat die deine beschriebenen Ausmaße annehmen, aber andererseits hast du auch den ernormen Vorteil, dass du genau ein Backup/Dump erzeugst.
Erstellst du keine BackUps von deinem Webserver / Filesystem?

Naja und der spezifische Nutzerzugriff auf Daten in der Datenbank ist ja wohl generell einfacher zu administrieren und zu benutzen als der von beispielsweise einer htaccess.... Ich denke da wirst du mir auf jeden Fall zustimmen müssen...
Da stimme ich dir auch zu, aber wenn ich schon die Meta Daten in der DB speichere, kann ich ja auch die Zugriffsregelung auf DB Ebene machen, da steht mir ja nichts im Wege oder?


Mir ist schon klar, dass man immer in mehrere Richtungen argumentieren kann. Aber meine persönliche Meinung bleibt dabei, keine Bilder in die DB :)


so long
Renegade
 
Wenigstens kannst du deine Meinung mit Argumenten untermauern. :)

Ich stimme dir grundsätzlich zu was du schreibst und nach wie vor bringt es uns in der Thematik an sich nicht weiter denke ich. It still depends on the situation...

Noch eine kleine Sache die du glaub ich falsch verstanden hast: Bezüglich Updates einer Daba und den darin enthaltenen BlOBS...
Doch ich mach regelmäßig Updates. Es war nur so gemeint, dass der Vorteil darin liegt, dass die Datenbank als ganzes geupdated wird und somit alles darin enthalten ist, ohne verschiedene Skripte anzustoßen die dann "Inselformate" produzieren. -> "Alles aus einer Hand." Mag natürlich auch ein Nachteil sein, wenn ein Backup kaputt ist und man auf es angewiesen ist (beispielsweise nach einem Crash, fehlerhaften Systemzuständen oder ähnliches Zeugs...).

greets, fire
 
Zurück
Oben