2016-04-03 19 views
-1

Ich habe meine Nachforschungen gemacht, aber ich weiß nicht, ob ich den Teil richtig oder falsch mache, den ich vorher mit meinem Team besprochen habe, aber wir haben ein anderes Konzept, diesen Teil zu machen.F: Datenbankdesign - Fotogalerie

Also hier ist es:

Image 
-id 
-img_url 
-img_thumb_url 
-etc 

Product 
-id 
-title 

Product_Image 
-id 
-product_id 
-image_id 

Gallery 
-id 
-image_id 

und im Vergleich:

Product 
-id 
-title 

Product_image 
-id 
-product_id 
-img_url 
-img_thumb_url 
-etc 

Gallery 
-id 
-img_url 
-img_thumb_url 
-etc 
+0

Err kann mir zumindest sagen, warum vorher diese Frage abstimmen? –

+0

Abgesehen von einer anderen Tabelle (Bild) gibt es irgendwelche relationalen Unterschiede zwischen den beiden Schemas? Ich denke, die Antwort ist "benutze die, die für dich funktioniert". Würde es sich lohnen, einige Testdaten zu erstellen, damit Sie überprüfen können, ob jedes Schema die gewünschten Daten enthält? – halfer

+0

Kann ein Bild nicht zu einem bestimmten Produkt gehören? –

Antwort

0

Ihre erste Version zum Ausdruck bringt, dass die Bilder unabhängig von Produkten existieren können, und dass ein Bild mit mehr als einem Produkt verknüpft werden . Es erlaubt also viel Flexibilität.

Der einzige fragliche Teil der ersten Version ist die Galerietabelle. Eine Galerie ist mit nur einem Bild verknüpft. Ein Bild kann also in mehr als einer Galerie enthalten sein, aber eine Galerie besteht aus nicht mehr als einem Bild. Das ist nicht, was wir eine Galerie nennen würden, aber ich kenne Ihre spezifischen Anforderungen nicht.

Der gemeinsame Begriff der Galerie würde in

Gallery 
id 
name 

Gallery_item 
id 
gallery_id 
image_id 

oder ausgedrückt werden, wenn ein Bild nur in einer Galerie enthalten sein können, Gallery_item könnte weg gelassen werden, und die gallery_id hinzugefügt Image.

Die zweite Alternative verknüpft ein Bild mit höchstens einem Produkt. Abhängig von einer not null Beschränkung auf product_id müsste ein solches Bild mit einem Produkt verknüpft werden oder nicht. Das gleiche Bild wird jedoch nie mit mehr als einem Produkt verknüpft. Wenn Sie das benötigen, müssen Sie dasselbe Bild zweimal erstellen, was eine unerwünschte Redundanz bedeuten würde. Das ist also der richtige Weg, wenn Sie sicher sind, dass Sie nie dasselbe Bild für mehr als ein Produkt benötigen.

Die Galerie, in der zweiten Alternative, ist nicht mit den anderen beiden Tabellen verbunden. Natürlich könnten Sie img_url als gemeinsamen Schlüssel verwenden, um die Produktbilder und das Galeriebild miteinander zu verknüpfen. Aber noch einmal, eine Galerie wird nicht mehr als ein Bild enthalten, deshalb bin ich verwirrt über ihren Zweck.