我想設計數據庫模式以保持項目持久性。 對於每個項目,我有如何爲具有多張照片的項目設計數據庫模式
- 標題
- 1或多張照片。
我想我的數據庫架構需要
- ID主鍵
- 字符串標題
我的問題是如何保持多張照片爲每個項目?每個項目可以有一個或多個與之相關的照片。
謝謝。
我想設計數據庫模式以保持項目持久性。 對於每個項目,我有如何爲具有多張照片的項目設計數據庫模式
我想我的數據庫架構需要
我的問題是如何保持多張照片爲每個項目?每個項目可以有一個或多個與之相關的照片。
謝謝。
您創建了第二張表,您可以在其中存儲照片以及它們所屬項目的標識。第二張表中的多行(每張照片一張)可以引用相同的項目。您在照片表中存儲的項目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.jpg
和side.jpg
屬於第二項(CAR)和green.jpg
屬於到第三項(樹)。
如果你想找到的標題和照片,爲您的第二個項目,你可以運行下面的查詢:
SELECT items.title, photos.photo
FROM items JOIN photos ON items.id = photos.item_id
WHERE items.id = 2
這是一個關係型數據庫?如果是...
如果照片只能有一個父母,那麼您只需要一張表格,用於具有父表格的外鍵的照片。
如果照片可以有多個父母,則需要使用多對多表將記錄從項目表鏈接到照片表中的記錄。多對多表將具有項目和照片主鍵的外鍵。