2014-09-24 55 views
-2

我想設計數據庫模式以保持項目持久性。 對於每個項目,我有如何爲具有多張照片的項目設計數據庫模式

  1. 標題
  2. 1或多張照片。

我想我的數據庫架構需要

  1. ID主鍵
  2. 字符串標題

我的問題是如何保持多張照片爲每個項目?每個項目可以有一個或多個與之相關的照片。

謝謝。

回答

1

您創建了第二張表,您可以在其中存儲照片以及它們所屬項目的標識。第二張表中的多行(每張照片一張)可以引用相同的項目。您在照片表中存儲的項目ID是項目表中的外鍵。例如,假設您的項目表包含以下三個項目:

id | title 
----+------- 
    1 | House 
    2 | Car 
    3 | Tree 

比方說,房子和樹各只有一張照片,但車上有2張照片。你可能會保存在你的照片表如下:

id | item_id | photo 
----+---------+----------- 
    1 |  1 | pic.jpg 
    2 |  2 | front.jpg 
    3 |  2 | side.jpg 
    4 |  3 | green.jpg 

在上表中,可以看到pic.jpg屬於第一項(樓),front.jpgside.jpg屬於第二項(CAR)和green.jpg屬於到第三項(樹)。

如果你想找到的標題和照片,爲您的第二個項目,你可以運行下面的查詢:

SELECT items.title, photos.photo 
FROM items JOIN photos ON items.id = photos.item_id 
WHERE items.id = 2 
0

這是一個關係型數據庫?如果是...

如果照片只能有一個父母,那麼您只需要一張表格,用於具有父表格的外鍵的照片。

如果照片可以有多個父母,則需要使用多對多表將記錄從項目表鏈接到照片表中的記錄。多對多表將具有項目和照片主鍵的外鍵。