Frage

Ich versuche meine Fotos zu organisieren und ein Ajax -Frontend zu erstellen. Ich habe viele Fotos und eine vorhandene Hosting -Site, die dafür bezahlt wird, dass viele Speicherplätze enthalten sind, also möchte ich nicht bezahlen, um im Picasa -Web oder in der Alternative zu speichern.

Ich erstelle eine ASP.NET -Site, um diese Fotos anzuzeigen, aber ich versuche, dann das beste Schema zu speichern. A haben ein paar grundlegende Fragen:

Fotos
Alben
Tags (vielleicht)

Ein paar Fragen: 1. Habe ich eine separate Tabelle für jedes Album oder alle Fotos auf einem Fotos? Die separaten Tabellen wären identisch, daher versuche ich zu bestimmen, ob diese Separate 2 einen Vorteil gibt. Ich glaube nicht, dass ich etwas zu Lust mache.

War es hilfreich?

Lösung

Sie sollten alle Fotos in einen Tisch legen, wo Sie 1: n mit fremden Schlüssel zu Alben haben, wie

Photos | id, title, url, description, album
Albums | id, title, description

wo das Album fremden Schlüssel ist Albums.id

Über Tags möchten Sie wahrscheinlich viele Tags für ein Foto haben, also wäre n: n, wo Sie einen anderen Tisch benötigen, um diesen beiden zu beitreten, also haben Sie also

Tags | id, name
Photo_Tag | id, id_tag, id_photo

wo id_tag und id_photo sind fremde Schlüssel zu Tag.id jeweilig Photo.id

Wenn Sie das Projekt nur für den persönlichen Gebrauch machen, denke ich, dass MySQL gut abschneiden würde.

Andere Tipps

Eine Tabelle für Alben (ID, Name, Beschreibung), eine Tabelle für Fotos (ID, Name, Beschreibung, Fotodata, Elternbum), Sie erhalten keinen Nutzen und viel Komplexität, wenn Sie in verschiedene Tabellen pro Album aufbrechen. Wenn Sie möchten, dass Fotos zu mehreren Alben gehören, verwenden Sie eine Link -Tabelle für die 1: n -Relationship -Alben: Fotos, anstatt die Album -ID als Teil des Fotos zu haben. Wenn Sie sich für Tags entscheiden, ob Sie die Fotos oder Alben (oder beides) markieren möchten, dann entscheiden Sie sich für eine Tags -Tabelle und eine 1: N -Mapping -Tabelle für AlbumTags und Phototags

In Bezug auf die DB -Auswahl ist das einzige Unterscheidungsmerkmal auf diesem Niveau kosten. Gehen Sie also mit dem, was Sie am besten wissen (wenn Sie beide zum gleichen Preis verfügbar sind).

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