2013-02-12 2 views
2

좋아요, 그래서 저는 지난 2 개월 동안이 문제를 다루었습니다. 주로 초보자이기 때문에 ... 저는 독서와 연구를했으며 결과는 ...이미지 테이블 스키마 피드백

내 웹 사이트 갤러리의 이미지 테이블 모델을 설계하고 있습니다. 기본적으로 이미지 (filename)를 업로드하고 5 가지 크기 (small, thumb, medium, large, big)를 만듭니다. 업로드 한 경우

  • 업로드 된 이미지의 최소 크기는 100 픽셀이
  • ---> 항상 smallthumb 크기
  • 을 만들 수 있습니다 :

    난 이미 다른 크기에 대한 가이드 라인을 설정 한 이미지 크기가 100 px보다 큰 경우 ---> 만들기 small, thumb, medium 크기

  • 업로드 된 이미지가 350 px 이상인 경우 --->small, thumb, medium, large 크기
  • 업로드 된 이미지가 ---> 생성 700 픽셀보다 큰 경우, 각각의 크기는 것

small, thumb, medium, large, big 크기가에 의해 정의 된 자신의 이름 년대 filename + 크기를 나타내는 suffix. 그래서, 작은 이미지 파일 이름이 _s 접미사 (1234_s.jpg)로 끝날 것이다, 등등 _t 접미사 (1234_t.jpg)과와 엄지 손가락 ...

는 또한 작은 파일을 생성하도록 결정했습니다 시스템 구조 때문에 아마 약 125 000 이미지를 업로드 결국 것입니다. 이 비슷한 :

http://www.mywebsite.com/gallery/images/0/6/image1.png 
http://www.mywebsite.com/gallery/images/5/4/image2.png 

이미지에 대한 경로가 config.php 파일에 상주하고 내가 relative_dir

나는 또한 필요라는 이름의 열 아래의 데이터베이스에서 이미지 폴더에 대한 상대 경로를 유지합니다 너비와 높이를 유지하여 브라우저에서 확인되도록하십시오. (표시 할 엄지 손가락이 많으면 getimagesize를 사용하면 서버에 많은 부담을 줄 것입니다.)

그래서 2 주 동안 읽고 연구를 마친 후 이걸 생각해 냈어. (내가 초보자라는 걸 기억해라)

의견, 제안 사항?

IMAGE 
----------------------- 
image_id 
title 
caption 
relative_dir 
filename 
small_filename 
small_width 
small_height 
thumb_filename 
thumb_width 
thumb_height 
medium_filename 
medium_width 
medium_height 
large_filename 
large_width 
large_height 
big_filename 
big_width 
big_height 

답변

2

갖는 열 value1, value2, value3처럼 또는 귀하의 경우 small, mediumlarge는 비정규 문제를 나타낸다. 그것은 부피가 큰 테이블을 만들며, 이미지 크기를 추가하거나 제거하려는 경우 스키마를 변경해야합니다. 각각 _width/_height 열이 필요한 이유는 확실하지 않습니다. 크기 상태 (예 : small은 항상 100px 임)에 따라 정적 너비/높이가있는 것처럼 보이기 때문입니다. 그러나 상관 없습니다.쉽게 등/정규 이미지 파일 이름, 타이틀/캡션을 얻을 수있는 Images 테이블을 사용

ImageUploads -- canonical image table 
iuID, title, caption, relative_dir, filename 
(do you need *both* relative_dir/filename) 

ImageSizes -- settings for sizes; width/height may go here as well 
isID, 
sizeName (small, medium, large, big, thumb) 
sizeSuffix (_s, _m, _l, _b, _t?) 

Images 
iuID, isID 

: 나는 세 개의 테이블을 제안한다. 필요한 접미사를 찾으십시오. 너비/높이는 개별 파일마다 다를 필요가있는 경우이 테이블로 이동하거나 크기 당이면 ImageSizes으로 이동합니다. 기본값을 원하지만 유연성을 허용하려는 경우 두 가지 방법을 모두 사용할 수도 있습니다.

+1

와우! 그것은 단지 당신에게 모델을 생각해 내는데 5 분이 걸렸습니다! 설명 해줘서 고마워. 크기는 동적이며 각 개별 파일마다 다릅니다. 그래서, 2500px 1200px 이미지를 업로드하는 경우, 엄지 손가락은 100px x 48px가 될 것입니다. (imageMagick을 사용하고 있습니다.) 그래서 크기는 Images 테이블에 있습니다 ... 또한, relative_dir과 파일 이름을 하나의 열에 병합하는 것이 좋습니다 ... 감사합니다! – Marco