2012-06-19 28 views
2

我的一個網站有很多用戶。他們目前每個人都有一個配置文件圖爲了保持速度和效率,我根據其獨特的UserID傳播了配置文件映像,以便沒有目錄具有超過1,000個元素。如何組織和構建PHP/MySQL中的圖像用戶相冊

但是,現在我想允許我的用戶上傳更多圖片到他們的個人資料中,但是我不知道如何組織和構造這個圖片,當每個用戶有多個圖片時。我明顯將每個用戶的相冊組織在他們當前的唯一文件夾下,但是如何?

我是否使用數據庫來跟蹤每個用戶有多少圖片?我是否確保每個文件都從1開始依次命名,然後按順序顯示它們(並且如果用戶更改了順序,我只是按正確的順序重命名它們)?或者我以其他方式做它?

我遇到的主要困難是瞭解並跟蹤每個用戶有多少圖像(特別是如果他們刪除了一個或兩個中間的圖像),它們的順序(應該是可修改的),以及使用什麼命名約定,同時保持事物的快速,合乎邏輯和高效。

這樣做的最好方法是什麼?

回答

2

是的,使用數據庫表,除了確認文件存在的位置之外,始終使用數據表來查找和組織圖像。

用戶添加文件:

  1. 上傳文件
  2. 使用hash.ext
  3. 確認文件存在創建用戶ID的散列和microtime中
  4. 寫入磁盤。
  5. 寫入數據庫,圖像標識(PK),用戶ID,路徑/到/ image.jpg的,時間戳

用戶刪除文件:其中基於

  1. 確認文件存在於磁盤上(擡頭圖像標識傳遞)使用從查詢中選擇哈希
  2. 刪除文件(不要讓他們通過一個文件名)從數據庫
  3. 刪除行
+1

我想發表類似的答案,但被「保持速度的同時」嚇壞了。你能保證它是? – jadkik94

+0

@ jadkik94沒有「fast」的定義,誰能說。查詢數據庫表以顯示圖像應該是「快速」。 – somedev