我正在爲基本照片庫的數據庫設計,每個用戶可以上傳幾個圖像。用戶照片庫MySQL設計
現在這裏是我有:
photo_gallery
photo_id - image - sort_order - user_id
1 - test.jpg - 1 - 1
2 - another_photo.jpg - 2 - 1
,然後在我的文件夾結構,我會創造像這樣一個新的文件夾: 圖片/照片畫廊/並將圖像存儲在那裏。現在,我應該創建一個文件夾的每個USER_ID和存儲其特定的圖像文件夾中/
在這種情況下所以: 圖片/照片畫廊/ 1/test.jpg放在和所有的用戶1的照片會那裏?
此外,爲了重新調整尺寸,我正在考慮使用smart image resizer,因此我只能存儲原始照片,並且如果我想將其調整到一定的大小,我可以使用如下腳本調用它:/ image。 php?width = 200 & height = 200 & image = test.jpg。
我應該散列這些文件名嗎?我錯過了什麼嗎?有關如何改善這一點的任何建議?
謝謝!
這是一個很好的答案。我只是想強調文件名/文件路徑重複的可能性。如果有用戶會上傳相同名稱的圖像或用戶將上傳相同的圖像(在你立足於圖像本身的哈希文件名的情況下),你需要確保你」的任何可能性首先檢查重複(file_exists())並以某種方式處理它。您也可以將mysql photo_id追加到文件末尾('_')。photo_id)以保持其獨特性,並可能將其用作未來的識別捷徑。 – 2012-01-03 17:42:52
感謝您的一個很好的答案。只是幾個問題。爲了存儲路徑,是不是最好將它存儲爲:0a/0a1b2c3d.jpg而不是包含圖像文件夾,以防萬一我改變它?在這種情況下,用於存儲原始文件名的好處是什麼? – Drew 2012-01-03 18:14:05
@德魯:很好。是的,將圖像路徑存儲在相對於圖像根路徑(您可以在配置文件中設置)的路徑中會更好。我會修改答案。關於原始文件名,這實際上取決於畫廊的目的。如果用戶查看圖像的原始文件名(或者以其原始名稱而非表面上隨機的名稱下載圖像)對用戶有用,則將其包括在內。如果文件名不相關,請跳過它。這就是構建自己的系統的美妙之處:您可以完美地使其適合您的預期用途。 – 2012-01-03 18:45:48