2016-05-23 10 views
-4

In einer Website habe ich vier Abschnitte: Veranstaltungen, Locations, Nachrichten und Formateoop - Architektur Vorschlag

Alle von ihnen 4 Art der Bilder haben:

  • Kleine Hauptbild
  • Big Hauptbild
  • Galerie Bilder
  • Beschreibung Bilder (Bilder in der Beschreibung des Textes durch ckeditor verwendet)

Wie würden Sie die Datenbank, die Klassen und das Dateisystem entwerfen?

Im Folgenden meine Ideen:

FILESYSTEM

img/ 
    locations/ 
     25(location id from db)/ 
      big/ 
      small/ 
      gallery/ 
      descripton/ 
    events/ 
    news/ 
    formats/ 

DATABASE UND KLASSEN

große und kleine Bilder als Felder in der Lage, Veranstaltungen, News gehen und Formate Tabellen

1) ein großer Tisch für alle Galeriebilder wie:

gallery: 
    id 
    type_id (location, events, news and formats) 
    filename 

und dann vier Tabellen wie:

locations_gallery: 
    location_id 
    gallery_id 

etc ....

Mit diesem Ansatz, den ich ein IGalleryDAO wie schaffen würde:

interface IGalleryDAO 
{ 
    GetImages (typeId, id); 
    SaveImages (images[], typeId, id); 
} 

Dann werden die vier Klassen Lage, Ereignisse, Nachrichten und Formate würden den Pfad zu den Dateinamen anhängen und sie verwenden

2) vier Tabellen, eine für jeden lo Kation, Veranstaltungen, News und Formate wie:

locations_gallery: 
    location_id 
    filename 

etc... 

Mit diesem Ansatz würde ich dies schaffen:

interface IGalleryDAO 
{ 
    GetImages (typeId, id); 
    SaveImages (images[], typeId, id); 
} 

abstract class GalleryDAO implements IGalleryDAO 
{ 
    abstract getFilePath(); // to ensure the filepath variable 

    abstract GetImages (id); 
    abstract SaveImages (id, images[]); 
} 

class LocationGalleryDAO extends GalleryDAO 
{ 
    function GetFilePath(){}; 
    function GetImages (id){}; 
    function SaveImages (id, images[]){}; 
} 

Das gleiche

sowie zu Beschreibungen Bilder angewendet werden würde, was Sie tun vorschlagen?

Vielen Dank im Voraus für Ihre Anregungen

+0

Warum erhält diese Frage 4 Stimmen, aber keinen einzigen Kommentar? – dbf

+0

Ich weiß nicht ... Ich glaube nicht, dass ich etwas falsch geschrieben habe ... Oder wenn ich es täte, wäre ein Kommentar nützlich, um nicht den gleichen Fehler in der Zukunft zu begehen. – Luca

Antwort

0

würde ich den Bildpfad enthält (und das Bild nicht) in der Datenbank. Ja, viele Datenbanken haben Optionen für Bilder, obwohl es gute Gründe gibt, diese Funktionen nicht zu verwenden. Eine davon ist, dass es sehr gute Rahmenbedingungen für die Organisation von Bildern gibt, und wenn Sie entscheiden, dass Sie eines davon in Zukunft verwenden möchten, wären Ihre Hände hinter Ihrem Rücken gebunden.

Ein Beispiel für eine Tabelle, die Sie in Ihrer Datenbank zu diesem Zweck wäre haben könnten:

Tabelle: images

__________________________ 
| id | path | type | 
|------+----------+--------| 
| 1 | /img/s/1 | s | 
|------+----------+--------| 
| 2 | /img/b/2 | b | 
|------+----------+--------| 
| 3 | /img/g/3 | g | 
|------+----------+--------| 
| 4 | /img/s/4 | s | 
|------+----------+--------| 
| 5 | /img/d/5 | d | 

Wo der Pfad extrahiert werden würde und dann in Ihrem HTML verwendet: <img src='{$path}'>. Die Typspalte ist nützlich, wenn Sie bestimmte Bilder abfragen möchten, und wenn Sie in Zukunft einen besonderen Bedarf für andere Abfragetypen haben, können Sie Spalten entsprechend hinzufügen.

ID wäre Ihre PRIMARY KEY, aber einige Leute bevorzugen, Daten als Primärschlüssel zu verwenden, obwohl dies ganz bei Ihnen liegt. Wenn Sie Datumsangaben verwenden würden, würde dies der Protokollierung dienen, wenn ein bestimmtes Bild in Ihrer Datenbank gespeichert wurde.

+0

Ja, ich habe vergessen, es in die zu schreiben Post, aber in der Datenbank würde ich nur die Pfade speichern. Sie schlagen also eine große Tabelle anstelle von vier Minitischen vor ... stellen Abfragen an einem großen Tisch nicht teurer dar als eine Abfrage an einem Minitisch? – Luca

+0

@Luca Solange Sie Ihre Spalten indizieren, werden Ihre Abfragen auch mit Millionen von Zeilen schnell ausgeführt. – Webeng