2012-02-06 87 views
0

如果您正在設計一個像pinterest或smugmug這樣的網站,並且您將每個圖像存儲在不同的維度中,那麼會在您的數據庫中存儲2個URL還是隻有1個,並根據文件名進行修改?圖像存儲系統設計

E.g.

  1. http://www.example.com/images/bucket1/file1_original.jpg
  2. http://www.example.com/images/bucket1/file1_800x600.jpg
  3. http://www.example.com/images/bucket1/file1_400x200.jpg

請問在這種情況下,你3個不同的網址,在數據庫或只是存儲

  1. http://www.example.com/images/bucket1/file1_的.jpg

從數據庫中獲取URL後,用實際維度替換INSERT_SIZE。

爲什麼我這樣想?如果您有10億張圖片,每張圖片有5種尺寸,那麼您必須在第一種情況下存儲50億個網址,在第二種情況下只存儲10億個網址。

第二個選項似乎節省空間,但它有其他設計缺點嗎?

回答

0

只需存儲文件的名稱,然後爲原始圖像和縮略圖構建網址。

例如

$URL = "http://site.com/i/".$imageName 

$URLthumb = "http://site.com/i/thumb/".$imageName 

這意味着,你救了你原來和拇指都使用相同的文件名,但在各自的文件夾中。

+0

所以,你也沒有看到這種方法的任何缺點嗎? – user855 2012-02-06 04:43:54

+0

我認爲這是最好的方式。您將減少每個文件夾的節點數量,通過在FTS中使用相同的名稱,可以使用一個查詢搜索相關圖像。減少到你的數據庫queires。節省數據庫空間。對於你的小中大的方法,只需做:/i/pic.jpg ::: /i/m/pic.jpg ::: /i/s/pic.jpg – 2012-02-06 04:46:09

+0

很酷。謝謝。 ... – user855 2012-02-06 04:52:44