2012-02-06 5 views
0

pinterest 또는 smugmug와 같은 웹 사이트를 디자인하고 각 이미지를 다른 차원에 저장하는 경우 데이터베이스에 2 개의 URL을 저장하거나 1 개만 저장하고 파일 이름을 기반으로 수정할 수 있습니까?Image Store 시스템 디자인

예.

  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 개 가지 DB를이 경우에 URL 또는 그냥

  1. http://www.example.com/images/bucket1/file1_이 .JPG 저장겠습니까

그리고 DB에서 URL을 가져온 후 INSERT_SIZE를 실제 크기로 바꾸십시오.

왜 이런 생각입니까? 10 억 개의 이미지가 있고 각 이미지의 크기가 5 개인 경우 첫 번째 경우에는 50 억 개의 URL을 저장해야하고 두 번째 경우에는 10 억 개의 URL 만 저장해야합니다.

두 번째 옵션은 공간을 절약하는 것처럼 보이지만 다른 디자인 단점이 있습니까?

답변

0

파일의 이름을 저장 한 다음 원본 이미지와 미리보기 이미지의 URL을 모두 작성하십시오. 예를 들어

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

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

이 같은 파일 이름으로하지만, 각각의 폴더에 모두 원래 엄지 저장된 것을 의미한다.

+0

그래서이 접근법에서는 어떤 단점도 보이지 않습니까? – user855

+0

이것이 최선의 방법이라고 생각합니다. 폴더 당 노드 수를 줄이면 FTS에서 같은 이름을 사용하여 하나의 쿼리로 관련 이미지를 검색 할 수 있습니다. DB에 줄이기를 줄이십시오. DB 공간을 절약하십시오. 중소형 대규모 접근 방식은 다음과 같이하십시오. /i/pic.jpg ::: /i/m/pic.jpg ::: /i/s/pic.jpg –

+0

차갑습니다. 감사. ... – user855

관련 문제