Ankündigung

Einklappen
Keine Ankündigung bisher.

Artikel mit Bildergallerie

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Artikel mit Bildergallerie

    Guten Morgen,

    ich möchte eine Artikeldatenbank erstellen. Zu jeden Artikel können bis zu 10 Bilder hinzugefügt werden.

    Meine Frage: Wie sollte ich die Bilder speichern?

    Für jeden Artikel einen neuen Ordner? Auf die Dauer werden es bestimmt zu viele Ordner.

    Fortlaufend nummerieren? Wie erstelle ich aber die Zuordnung zu einen Artikel?

    Wie würdet ihr das machen. Bin für jede Idee offen.

    Mit besten Grüßen

    Ralle

  • #2
    Grundlegend gibt es nicht viele Varianten

    a) Bilder in der Datenbank ablegen
    - empfielt sich nur selten wegen der Datenmengen
    + aber Du hast keinen Medienbruch
    ~ Daten müssen durch PHP geschleift werden
    b) Bilder im Filesystem ablegen
    + naheliegend, weil der Server sie dort direkt ausliefern kann (Performance)
    - Filesystem selbst kann meist keine Metadaten aufnehmen (wie eben die Artikelzuordnung, aber auch Titel, Alt-Texte und was eine Webanwendung noch so braucht). Es liegt damit in der Verantwortung des einbindenden Kontext, bspw. Markup oder dessen Speichermedium (z.B. Datenbank)
    - damit bekommst Du ein Synchronisierungsproblem (referenzierte Files vs. physisch vorhandene Files)
    - damit musst Du im Prinzip alles ohne FTP direkt über die Anwendung pflegen (Uploadfelder etc.) oder ein Syncing implementieren
    b.1) Filesystem + Unterordner
    ~ Orderhierarchie verschiebt oder verschlimmbessert das Syncing-Problem
    + Order erlauben geschützte Bereiche einzuführen, z.B. Bilder die nur angemeldete Nutzer sehen dürfen
    - unter bestimmten Serverkonfigurationen bekommst Du Probleme mit dem Rechtemanagement (z.B. PHP-Ordnerrechte vs. FTP-Ordnerrechte)


    b) ist die typischste Variante, auch weil sie dem Funktionsprinzip von www-Kommunikation entspricht.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Danke nikosch, das hilft mir ein wenig weiter.

      Nehme mal dein Gedanken b) und versuche die Zuordnung der Bilder mit der Datenbank (Bilder bleiben im Filesystem) zu lösen. Ordner für Bilder würde ich dann nur ein Ordner anlegen oder sollten die Ordner eine Jahresstruktur aufweisen.

      //artikel/bilder/2013
      //artikel/bilder/2014
      ...
      usw. da könnte man doch im Nachhinein noch ein Jahresarchiv implantieren oder?


      Mein Ansatz für eine Datenbank hoffentlich liege ich damit richtig!

      A

      --
      -- Datenbank: `artikel`
      --

      -- --------------------------------------------------------

      --
      -- Tabellenstruktur für Tabelle `artikel`
      --

      CREATE TABLE IF NOT EXISTS `artikel` (
      `id_artikel` int(11) NOT NULL AUTO_INCREMENT,
      `id_bild` int(11) NOT NULL,
      `id_material` int(11) NOT NULL,
      `id_kategorie` int(11) NOT NULL,
      `datum` int(11) NOT NULL,
      `ueberschrift` varchar(255) COLLATE latin1_german2_ci NOT NULL,
      `text` text COLLATE latin1_german2_ci NOT NULL,
      `tags` varchar(255) COLLATE latin1_german2_ci NOT NULL,
      PRIMARY KEY (`id_artikel`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=1 ;

      -- --------------------------------------------------------

      --
      -- Tabellenstruktur für Tabelle `bild`
      --

      CREATE TABLE IF NOT EXISTS `bild` (
      `id_bild` int(11) NOT NULL AUTO_INCREMENT,
      `id_bild_artikel` int(11) NOT NULL,
      `bilddatei` varchar(255) COLLATE latin1_german2_ci NOT NULL,
      PRIMARY KEY (`id_bild`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=1 ;

      -- --------------------------------------------------------

      --
      -- Tabellenstruktur für Tabelle `kategorie`
      --

      CREATE TABLE IF NOT EXISTS `kategorie` (
      `id_kategorie` int(11) NOT NULL AUTO_INCREMENT,
      `kategorie` varchar(100) COLLATE latin1_german2_ci NOT NULL,
      PRIMARY KEY (`id_kategorie`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=1 ;

      -- --------------------------------------------------------

      --
      -- Tabellenstruktur für Tabelle `material`
      --

      CREATE TABLE IF NOT EXISTS `material` (
      `id_material` int(11) NOT NULL AUTO_INCREMENT,
      `id_artikel_material` int(11) NOT NULL,
      PRIMARY KEY (`id_material`)
      ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci AUTO_INCREMENT=1 ;

      Kommentar

      Lädt...
      X