Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

pdf in eine my SQL datenbank speichern

Frage Entwicklung Datenbanken

Mitglied: spawny2407

spawny2407 (Level 1) - Jetzt verbinden

26.06.2009, aktualisiert 14:21 Uhr, 17662 Aufrufe, 9 Kommentare

moin moin

kunde möchte in eine bestehende mySQL DB pdf. Dokumente ablegen ( auch Word ).
Geht das?

Wenn ja wie müßte die Spalten Difinition ausschauen das ich diese später auch direkt wieder ( über ein WEB portall ) "downloaden" oder öffnen kann


ich danke Euch

Christian
Mitglied: BCCray
26.06.2009 um 14:36 Uhr
Das ist möglich.... In MySQL gibts den Blob-Datentyp ( Blob = Binary Large Object). Using Blob in MySQL(Deutsch)
Da aber eine Datenbank nicht auf Datentransfer ausgelegt (die direkte Bereitstellung ist wesentlich performanter) ist und nur unnötig Leistung für dein Vorhaben nimmt, denke ich wäre es besser nur den Pfad in der Datenbank zu hinterlegen, welcher dann auf die Dateien verweißt.
Ich rate dir hier ausdrücklich davon ab, Blob als "Datentransfermittel" zu verwenden.
Bitte warten ..
Mitglied: empreality
26.06.2009 um 14:42 Uhr
Ja seh ich auch so, sinnvolle Ordnerstruktur ausdenken und in der DB nur die Pfade speichern.
Oder die PDFs dynamisch erzeugen - falls sowas hier überhaupt gefragt ist.

Datenbank != Dateienbank
Bitte warten ..
Mitglied: BCCray
26.06.2009 um 14:49 Uhr
Ich denke das er bereits vorgefertigte PDF-Dateien hat. Aber es gibt genügend Scripte, die aus Seitentexten PDF-Dateien generieren.... dazu müsste der Threaderöffner lediglich googeln ;)
Wenn ich jetzt noch unterstelle das er PHP verwendet, würd ich als Stichwort schon mal " HTML 2 PDF" in den Raum werfen.

Greetz
Bitte warten ..
Mitglied: Biber
26.06.2009 um 17:57 Uhr
Moin spawny2407,

wenn die Anforderung/Konzeptanfrage des Kunden allerdings wirklich ist, PDFs/Dokumente/ irgendwelch "grossen Binär-Datenklumpen" in einer ohnehin bestehenden, vorhandenen (mySQL-)Datenbank zu integrieren, dann möchte ich BCCray vehement widersprechen mit der Variante "Dateinamen/Links in den Tabellen von der DB verwalten lassen ind Dateien vom File/Betriebssystem".

Klingt erst mal einleuchtend und ist in der ersten Vorstellung auch "schneller".

Aber der exponentiell steigende Verwaltungs- und Konsolidierungsaufwand ist NICHT handlebar.

Auf DB-Objekte (Tabellen/Datensätze/Datenfelder) kannst Du differentiert und dokumentierbar mit Rechten und Privilegien festlegen, wer was sehen/bearbeiten/löschen darf.

Bei einer Getrennt-Verarbeitung (Links in den Tabellen/Dateien im Filesystem) muss Du
  • synchrone, widerspuchsfreie Rechte je User und Datei/Tabellenfeld garantieren (oder starke Nerven haben)
  • musst das, was in der DB-Welt "Referentielle Integrität" heißt auf Einzel-Dateiebene nachkaspern.

sprich: jedes PDF, dass auch nur ein Benutzer irgendwo per Link auf den Schirm bekommt, muss er auch Offnen dürfen und es muss vorhanden sein und "neue" PDF, die Du irgendwie ins Filesystem kopierst, müssten eigentlich auch nur dort sein dürfen, wenn sie auch in den Tabellen sind...

---> Bekommst Du nicht ernshaft gebacken.
Es sei denn, wir reden von 5 PDFs und 3 Usern.

Grüße
Biber
Bitte warten ..
Mitglied: BCCray
26.06.2009 um 18:18 Uhr
Gut, ich hab ja nicht unbedingt gesagt, das es nicht machbar ist bzw. Sinn macht.
Wenn es die Anforderung des Kunden ist, das Binärdaten in einer DB gespeichert werden, dann hast auch nicht recht eine andere Wahl.

spawny2407 gab ja keine weiteren Angaben dazu, es war meiner Auffassung nach eine allgemeine Frage. Und im Allgemeinen Kontext ist es auch nicht nötig, ein (ich nenn es mal Dateitransfersystem) über die Datenbank abzuhandeln.

Gut, die Datenintegrität zu bewahren ist schon ein Aufwand. Dies Problem könnte behoben werden, in dem ein cron oder Script die Daten auf vorhandensein prüft. Die Einträge in die Datenbank lässt sich mittels eines "Einspielen" oder Uploads mit passenden Script bewerkstelligen. Ich finde halt das man für eine primitive Aufgabe hier den DB-Server nicht sinnlos beanspruchen muss, wenn diese Aufgabe http viel schneller und besser bewerkstelligt.
Noch dazu wenn mehrere User gleichzeitig was aus der Datenbank ziehen, dann wirds schon sehr eng mit der Bandbreite.... oder reden wir von 5 PDFs und 3 Usern?
Man muss halt auch immer sehen was sinnvoll ist.
Wenn man Dateien selbst in der Datenbank ablegt, hat dies den Vorteil, dass keine broken links auftreten können, weil ja die Bilder selbst genauso wie die Links auf die Bilder aus der Datenbank erzeugt werden. Liegen die Bilddaten dagegen im Dateisystem und die Datenbank enthält nur Pfadnamen, dann ist es problemlos möglich, dass jemand die Dateien umbenennt, ohne diese Änderung in der Datenbank nachzuführen und umgekehrt. Leider ist es speziell bei MySQL so, dass keinerlei Mechanismen vorhanden sind, die die referentielle Integrität der Datenbank sicherstellen, sodass diese Sicherheit nicht wirklich gegeben ist.
Weiter kann MySQL BLOBsnicht fragmentarisch bearbeiten, d.h. es ist nicht möglich, ein BLOB in kleinen Teilstücken aus der Datenbank zu holen oder den hinteren Teil eines BLOBs zu holen, ohne die Bytes davor zu lesen. Obendrein ist der Sendepuffer von MySQL für BLOBs begrenzt groß, sodass nicht beliebig große BLOBs in der Datenbank abgelegt werden können.
(aber nun denk ich schweifen wir zu sehr vom Thema ab)

Und ein Rechtesystem lässt sich datenbankgestützt auch sehr einfach aufbauen. Noch dazu wenn er sowieso die Daten mittels Webfrontend zur Verfügung stellt. (Hier setze ich ein User-Managment-System o.ä. vorraus)
Auf Basis dieser Berechtigungen kann sehr wohl auch Zugriffs- und Berechtigungssystem umsetzen.
Bitte warten ..
Mitglied: Biber
26.06.2009 um 18:30 Uhr
Moin BCCray,

mein Posting sollte auch kein pauschales Verdammen Deiner Strategie sein - nur eine Gegenrede.

Und wo wir uns sicherlich problemlos zu einem Kompromiss treffen können:
"Es hängt vom konkreten Einzelfall ab."
spawny2407 hat da nicht genug Infos geliefert, um eindeutig pro oder contra argumentieren zu können - es fehlen eben Mengengerüste, Komplexität der Anwendung und auch Sicherheits/Zugriffsbeschränkungsanforderungen sowie die mögliche Verzahnung mit anderen Systemen (woher kommen die Daten /wohin gehen sie?).

Aber ich denke, für einen ersten Argumentsaustausch mit dem Kunden haben wir ihn sensibilisiert.

Grüße
Biber
Bitte warten ..
Mitglied: BCCray
26.06.2009 um 21:50 Uhr
fullack Ich wollte auch deine Bemerkung nicht in irgendeiner Weiße kritisieren. Ich hab schon solche und solche Lösungen umgesetzt. Hier ist eben eine Fallentscheidung nötig.

Er weiß jetzt, was möglich ist, was die jeweiligen Vor- und Nachteile sind, auf was er achten muss bzw. welche Informationen für die jeweilige Entscheidung wichtig sind.

Grüße

BCC

P.S.: Schönes Wochenende!
Bitte warten ..
Mitglied: spawny2407
29.06.2009 um 10:47 Uhr
Moin

erstmal vielen Dank für Eure Antworten.

Das mit den Daten in der Datenbank leuchtet mir schon ein ( Dateienbank ), ist schon ne menge an Daten die abgelegt werden sollen. Die PDFs sind schon vorhanden und sollen abgelegt werden.

Wenn ich nun eine Ordnerstruktur erstelle \Aktenzeichen XYZ\PDF_xyz.pdf, wie bekomme ich nun den Pfad ( welcher Datentyp) bzw den Pfad in die DB und die Datei in die Struktur abgelegt. Ist das alles mit einem INSERT Befehl möglich.

Ich Danke euch für Eure Mühe

Christian

PS: den Kunden kann ich auch umlenken, so das er auch andere Lösungswege akzeptiet
Bitte warten ..
Mitglied: BCCray
29.06.2009 um 11:03 Uhr
Moin spawny2407,

Wenn ich nun eine Ordnerstruktur erstelle \Aktenzeichen
XYZ\PDF_xyz.pdf, wie bekomme ich nun den Pfad ( welcher Datentyp)

Pfad Datentyp wäre varchar (evtl aufpassen mit den Backslash - escapen)

den Pfad in die DB und die Datei in die Struktur abgelegt. Ist das
alles mit einem INSERT Befehl möglich.
Ja, das wär mit einem Insert möglich.

Am besten du verwendest hier ein Upload-Script, das dir die Daten hochlädt und die ensprechenden Pfade in die DB einträgt.

Such einfach mal nach "Dokumentverwaltung + scripte" - hier gibts eine Menge an bereits existierenden Scripten.
Hier kannst du dir dann etwas "abschauen"

Greetz
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Festplatten, SSD, Raid
Vergleich zweier SSD-Typen im Raid-10 für den Anwendungsfall SQL-Datenbank (8)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Windows Server
Eine bestimmte SQL-Datenbank wird nicht jeden Tag gesichert? (12)

Frage von AlbertMinrich zum Thema Windows Server ...

Windows Server
gelöst SQL Datenbank Umzug (4)

Frage von hornissenmann zum Thema Windows Server ...

Windows Server
Microsoft SQL-Datenbank Syncronisieren

Frage von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...