2011-07-31 4 views
0

예를 들어 블로그에 기사 목록이 있다고 가정 해 봅시다. 각 기사에는 하나의 이미지가 있으며 각 이미지에는 하나의 미리보기 이미지가 있습니다.데이터베이스 디자인 - 큰 필드

기사 목록을 표시 할 때 각각이 미리보기 이미지와 함께 표시됩니다. 단일 기사를 표시 할 때 전체 크기 이미지로 표시됩니다.

이것은 이미지, 미리보기 이미지 및 텍스트와 같이 각 기사에 3 개의 큰 (알 수없는 크기) 데이터 항목이 있음을 의미합니다.

  1. 기사 테이블이 기사 테이블이 썸네일 열, 이미지에 저장된 별도의 테이블
  2. 미리보기 및 이미지에 저장된 포함
  3. 썸네일 열 및 이미지 열을 포함

    이러한 디자인의 장점과 단점은 무엇입니까 단일 별도의 테이블

  4. 개별 테이블에 저장된 축소판 및 이미지
  5. 사이트에는 이미지와 미리보기 이미지가 저장되는 폴더에 대한 쓰기 권한이 있습니다 D는 데이터베이스의 URL/파일 이름

(있는 I 고려하지 않은?)

이 차이를 만드는 경우, 나는이 사이트는 루비/레일에 기록됩니다한다고 생각하지 않습니다 포함 Postgres 또는 MySql을 사용합니다.

답변

0

정확하게 이해한다면 데이터베이스는 이미 필드의 데이터 유형과 크기에 따라 큰 필드를 별도의 "테이블"로 분리 처리합니다. 에 대한 Google의 "행 저장소 외부" 또는 이와 유사한. 이 설정도있을 수 있습니다.

즉, 큰 필드에 대해 별도의 테이블을 만들지 않아도됩니다.

db 대신 디스크에 저장하는 것에 대해서는 잘 모르겠다. 그 질문은 여러 번 전에 물어 보았다고 생각합니다.

1

IMO, 옵션 5가 가장 좋습니다. 이미지를 데이터베이스에 저장할 수 있다고해서 꼭해야한다는 것은 아닙니다. 파일 위치와 DB에있는 이미지에 대한 메타 데이터를 저장하십시오. 이미지를 파일 시스템에 저장하십시오.

DB에 이미지를 저장하는 '단점'은 실제로 앱에서 이미지를 사용하기 위해 농구를 뛰어 넘는 것입니다. 거의 모든 라이브러리, 스크립트, 애드온 등은 특별한 코딩없이 디렉토리에 있다면 이미지를 사용할 수 있습니다. DB에 저장하면 코드를 사용하여 액세스 권한을 제공해야합니다.

내가 볼 수있는 유일한 이점은 여러 웹 서버가 단일 (또는 복제 된 데이터베이스)를 사용하는 웹 팜 환경에서 사진을 모든 웹 서버에서 자동으로 사용할 수 있고 데이터와 이미지를 모두 백업 할 수 있다는 것입니다 일단.

IMO, 이미지를 저장하는 데 DB를 사용하는 것이 장점보다 훨씬 중요합니다.

+1

일반적으로 dbms에 설정된 두 세트와 파일 시스템에 설정된 한 세트의 두 가지 사용 권한 세트를 관리하고 동기화해야합니다. 일반 웹 사용자가 이미지를 제출할 수있게 허용되면 파일 시스템의 일부에서 'w'권한이 필요합니다. 이는 일부 회사에서는 견딜 수 있으며 다른 회사에서는 견딜 수 없습니다. –